Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 血海深仇
Holders
12
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
20,000,000,000 血海深仇Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Vengeance
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-30 */ /* 血海,指殺人無數,幾乎血流成海。 「血海深仇」指極深的仇恨。如:「武俠小說中常有為報血海深仇而糾纏不清的江湖恩怨。」 In this space, no one truly knows each other, but what if we are able to know one's real identity, will there be any unrealised vengeance between two or more person? Or, should anonymity be a norm in the space? .---. |---| |---| |---| .---^ - ^---. :___________: | |//| | |//| | |//| | |//| | |//| | |//| | |.-| |.-'**| \ * / \ / V ' ^' (_) -. ^ .- ______\'.|.'/________ */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.7; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; 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() public 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; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract Vengeance is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Vengeance"; string private constant _symbol = "\xE8\xA1\x80\xE6\xB5\xB7\xE6\xB7\xB1\xe4\xBB\x87"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 2; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 2; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xE9Ad47A21cA82DcF599e657333C0Bed5871C91Bd); address payable private _marketingAddress = payable(0xE9Ad47A21cA82DcF599e657333C0Bed5871C91Bd); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000000000 * 10**9; uint256 public _maxWalletSize = 20000000000 * 10**9; uint256 public _swapTokensAtAmount = 100000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function newPair() external onlyOwner{ IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { require(_tradingOpen); tradingOpen = _tradingOpen; launchBlock = block.number; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function addBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBots(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnBuy <= 15 && taxFeeOnSell <= 15 ); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount, uint256 maxWalletSize) external onlyOwner { require(maxTxAmount >= 5000000000 * 10**9 ); _maxTxAmount = maxTxAmount; _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) external onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"newPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"notbot","type":"address"}],"name":"unblockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d919062000516565b6000196200002c91906200057d565b60065560006009556002600a556000600b556002600c55600b54600d55600c54600e55600d54600f55600e5460105573e9ad47a21ca82dcf599e657333c0bed5871c91bd601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9ad47a21ca82dcf599e657333c0bed5871c91bd601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506801158e460913d000006017556801158e460913d0000060185567016345785d8a00006019553480156200016d57600080fd5b50600062000180620004ac60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000235620004ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000289620004b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000436620004ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200049e9190620005c9565b60405180910390a3620005e6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200052382620004dd565b91506200053083620004dd565b925082620005435762000542620004e7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200058a82620004dd565b91506200059783620004dd565b925082821015620005ad57620005ac6200054e565b5b828203905092915050565b620005c381620004dd565b82525050565b6000602082019050620005e06000830184620005b8565b92915050565b61402780620005f66000396000f3fe6080604052600436106101d15760003560e01c80638f70ccf7116100f7578063b792507e11610095578063d00efb2f11610064578063d00efb2f14610637578063d34628cc14610662578063dd62ed3e1461068b578063f2fde38b146106c8576101d8565b8063b792507e14610591578063bfd79284146105ba578063c3c8cd80146105f7578063c492f0461461060e576101d8565b806398a5c315116100d157806398a5c315146104d9578063a2a957bb14610502578063a9059cbb1461052b578063ae0f3f4514610568576101d8565b80638f70ccf71461045a5780638f9a55c01461048357806395d89b41146104ae576101d8565b806349bd5a5e1161016f57806370a082311161013e57806370a08231146103b0578063715018a6146103ed5780637d1db4a5146104045780638da5cb5b1461042f576101d8565b806349bd5a5e1461032e5780634f6a05c2146103595780636d8aa8f8146103705780636fc3eaec14610399576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106f1565b6040516101ff9190612e18565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612ee2565b61072e565b60405161023c9190612f3d565b60405180910390f35b34801561025157600080fd5b5061025a61074c565b6040516102679190612fb7565b60405180910390f35b34801561027c57600080fd5b50610285610772565b6040516102929190612fe1565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612ffc565b610783565b6040516102cf9190612f3d565b60405180910390f35b3480156102e457600080fd5b506102ed61085c565b6040516102fa9190612fe1565b60405180910390f35b34801561030f57600080fd5b50610318610862565b604051610325919061306b565b60405180910390f35b34801561033a57600080fd5b5061034361086b565b6040516103509190613095565b60405180910390f35b34801561036557600080fd5b5061036e610891565b005b34801561037c57600080fd5b50610397600480360381019061039291906130dc565b610b1d565b005b3480156103a557600080fd5b506103ae610bce565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613109565b610c9f565b6040516103e49190612fe1565b60405180910390f35b3480156103f957600080fd5b50610402610cf0565b005b34801561041057600080fd5b50610419610e43565b6040516104269190612fe1565b60405180910390f35b34801561043b57600080fd5b50610444610e49565b6040516104519190613095565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c91906130dc565b610e72565b005b34801561048f57600080fd5b50610498610f35565b6040516104a59190612fe1565b60405180910390f35b3480156104ba57600080fd5b506104c3610f3b565b6040516104d09190612e18565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190613136565b610f78565b005b34801561050e57600080fd5b5061052960048036038101906105249190613163565b611017565b005b34801561053757600080fd5b50610552600480360381019061054d9190612ee2565b6110e9565b60405161055f9190612f3d565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906131ca565b611107565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613109565b6111c3565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613109565b6112b3565b6040516105ee9190612f3d565b60405180910390f35b34801561060357600080fd5b5061060c6112d3565b005b34801561061a57600080fd5b506106356004803603810190610630919061326f565b6113ac565b005b34801561064357600080fd5b5061064c6114e6565b6040516106599190612fe1565b60405180910390f35b34801561066e57600080fd5b506106896004803603810190610684919061340d565b6114ec565b005b34801561069757600080fd5b506106b260048036038101906106ad9190613456565b611616565b6040516106bf9190612fe1565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea9190613109565b61169d565b005b60606040518060400160405280600981526020017f56656e6765616e63650000000000000000000000000000000000000000000000815250905090565b600061074261073b61185f565b8484611867565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610790848484611a32565b6108518461079c61185f565b61084c85604051806060016040528060288152602001613fca60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080261185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220f9092919063ffffffff16565b611867565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61089961185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d906134e2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613517565b6040518363ffffffff1660e01b8152600401610a97929190613544565b6020604051808303816000875af1158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190613517565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b2561185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906134e2565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0f61185f565b73ffffffffffffffffffffffffffffffffffffffff161480610c855750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c6d61185f565b73ffffffffffffffffffffffffffffffffffffffff16145b610c8e57600080fd5b6000479050610c9c81612273565b50565b6000610ce9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236e565b9050919050565b610cf861185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c906134e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e7a61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906134e2565b60405180910390fd5b80610f1157600080fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600c81526020017fe8a180e6b5b7e6b7b1e4bb870000000000000000000000000000000000000000815250905090565b610f8061185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611004906134e2565b60405180910390fd5b8060198190555050565b61101f61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a3906134e2565b60405180910390fd5b600f82111580156110be5750600f8111155b6110c757600080fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006110fd6110f661185f565b8484611a32565b6001905092915050565b61110f61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611193906134e2565b60405180910390fd5b674563918244f400008210156111b157600080fd5b81601781905550806018819055505050565b6111cb61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f906134e2565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131461185f565b73ffffffffffffffffffffffffffffffffffffffff16148061138a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137261185f565b73ffffffffffffffffffffffffffffffffffffffff16145b61139357600080fd5b600061139e30610c9f565b90506113a9816123dc565b50565b6113b461185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906134e2565b60405180910390fd5b60005b838390508110156114e05781600560008686858181106114675761146661356d565b5b905060200201602081019061147c9190613109565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114d8906135cb565b915050611444565b50505050565b60085481565b6114f461185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611578906134e2565b60405180910390fd5b60005b8151811015611612576001601160008484815181106115a6576115a561356d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061160a906135cb565b915050611584565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116a561185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906134e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179990613686565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613718565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e906137aa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a259190612fe1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a999061383c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b09906138ce565b60405180910390fd5b60008111611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c90613960565b60405180910390fd5b611b5d610e49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bcb5750611b9b610e49565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657601660149054906101000a900460ff16611c5a57611bec610e49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c50906139f2565b60405180910390fd5b5b601754811115611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613a5e565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d435750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7990613af0565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e2f5760185481611de484610c9f565b611dee9190613b10565b10611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613bd8565b60405180910390fd5b5b6000611e3a30610c9f565b9050600060195482101590506017548210611e555760175491505b808015611e6f5750601660159054906101000a900460ff16155b8015611ec95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611edf575060168054906101000a900460ff165b8015611f355750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f8b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fb357611f99826123dc565b60004790506000811115611fb157611fb047612273565b5b505b50505b600060019050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120685750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207657600090506121fd565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561213957600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121e45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121fc57600b54600d81905550600c54600e819055505b5b61220984848484612655565b50505050565b6000838311158290612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e9190612e18565b60405180910390fd5b50600083856122669190613bf8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122c360028461268290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122ee573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61233f60028461268290919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561236a573d6000803e3d6000fd5b5050565b60006006548211156123b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ac90613c9e565b60405180910390fd5b60006123bf6126cc565b90506123d4818461268290919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612414576124136132cf565b5b6040519080825280602002602001820160405280156124425781602001602082028036833780820191505090505b509050308160008151811061245a5761245961356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125259190613517565b816001815181106125395761253861356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125a030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611867565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612604959493929190613db7565b600060405180830381600087803b15801561261e57600080fd5b505af1158015612632573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612663576126626126f7565b5b61266e84848461273a565b8061267c5761267b612905565b5b50505050565b60006126c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612919565b905092915050565b60008060006126d961297c565b915091506126f0818361268290919063ffffffff16565b9250505090565b6000600d5414801561270b57506000600e54145b1561271557612738565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061274c876129de565b9550955095509550955095506127aa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288b81612aee565b6128958483612bab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f29190612fe1565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129579190612e18565b60405180910390fd5b506000838561296f9190613e40565b9050809150509392505050565b600080600060065490506000683635c9adc5dea0000090506129b2683635c9adc5dea0000060065461268290919063ffffffff16565b8210156129d157600654683635c9adc5dea000009350935050506129da565b81819350935050505b9091565b60008060008060008060008060006129fb8a600d54600e54612be5565b9250925092506000612a0b6126cc565b90506000806000612a1e8e878787612c7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220f565b905092915050565b6000808284612a9f9190613b10565b905083811015612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb90613ebd565b60405180910390fd5b8091505092915050565b6000612af86126cc565b90506000612b0f8284612d0490919063ffffffff16565b9050612b6381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bc082600654612a4690919063ffffffff16565b600681905550612bdb81600754612a9090919063ffffffff16565b6007819055505050565b600080600080612c116064612c03888a612d0490919063ffffffff16565b61268290919063ffffffff16565b90506000612c3b6064612c2d888b612d0490919063ffffffff16565b61268290919063ffffffff16565b90506000612c6482612c56858c612a4690919063ffffffff16565b612a4690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c948589612d0490919063ffffffff16565b90506000612cab8689612d0490919063ffffffff16565b90506000612cc28789612d0490919063ffffffff16565b90506000612ceb82612cdd8587612a4690919063ffffffff16565b612a4690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d175760009050612d79565b60008284612d259190613edd565b9050828482612d349190613e40565b14612d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6b90613fa9565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612db9578082015181840152602081019050612d9e565b83811115612dc8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dea82612d7f565b612df48185612d8a565b9350612e04818560208601612d9b565b612e0d81612dce565b840191505092915050565b60006020820190508181036000830152612e328184612ddf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7982612e4e565b9050919050565b612e8981612e6e565b8114612e9457600080fd5b50565b600081359050612ea681612e80565b92915050565b6000819050919050565b612ebf81612eac565b8114612eca57600080fd5b50565b600081359050612edc81612eb6565b92915050565b60008060408385031215612ef957612ef8612e44565b5b6000612f0785828601612e97565b9250506020612f1885828601612ecd565b9150509250929050565b60008115159050919050565b612f3781612f22565b82525050565b6000602082019050612f526000830184612f2e565b92915050565b6000819050919050565b6000612f7d612f78612f7384612e4e565b612f58565b612e4e565b9050919050565b6000612f8f82612f62565b9050919050565b6000612fa182612f84565b9050919050565b612fb181612f96565b82525050565b6000602082019050612fcc6000830184612fa8565b92915050565b612fdb81612eac565b82525050565b6000602082019050612ff66000830184612fd2565b92915050565b60008060006060848603121561301557613014612e44565b5b600061302386828701612e97565b935050602061303486828701612e97565b925050604061304586828701612ecd565b9150509250925092565b600060ff82169050919050565b6130658161304f565b82525050565b6000602082019050613080600083018461305c565b92915050565b61308f81612e6e565b82525050565b60006020820190506130aa6000830184613086565b92915050565b6130b981612f22565b81146130c457600080fd5b50565b6000813590506130d6816130b0565b92915050565b6000602082840312156130f2576130f1612e44565b5b6000613100848285016130c7565b91505092915050565b60006020828403121561311f5761311e612e44565b5b600061312d84828501612e97565b91505092915050565b60006020828403121561314c5761314b612e44565b5b600061315a84828501612ecd565b91505092915050565b6000806000806080858703121561317d5761317c612e44565b5b600061318b87828801612ecd565b945050602061319c87828801612ecd565b93505060406131ad87828801612ecd565b92505060606131be87828801612ecd565b91505092959194509250565b600080604083850312156131e1576131e0612e44565b5b60006131ef85828601612ecd565b925050602061320085828601612ecd565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261322f5761322e61320a565b5b8235905067ffffffffffffffff81111561324c5761324b61320f565b5b60208301915083602082028301111561326857613267613214565b5b9250929050565b60008060006040848603121561328857613287612e44565b5b600084013567ffffffffffffffff8111156132a6576132a5612e49565b5b6132b286828701613219565b935093505060206132c5868287016130c7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330782612dce565b810181811067ffffffffffffffff82111715613326576133256132cf565b5b80604052505050565b6000613339612e3a565b905061334582826132fe565b919050565b600067ffffffffffffffff821115613365576133646132cf565b5b602082029050602081019050919050565b60006133896133848461334a565b61332f565b905080838252602082019050602084028301858111156133ac576133ab613214565b5b835b818110156133d557806133c18882612e97565b8452602084019350506020810190506133ae565b5050509392505050565b600082601f8301126133f4576133f361320a565b5b8135613404848260208601613376565b91505092915050565b60006020828403121561342357613422612e44565b5b600082013567ffffffffffffffff81111561344157613440612e49565b5b61344d848285016133df565b91505092915050565b6000806040838503121561346d5761346c612e44565b5b600061347b85828601612e97565b925050602061348c85828601612e97565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134cc602083612d8a565b91506134d782613496565b602082019050919050565b600060208201905081810360008301526134fb816134bf565b9050919050565b60008151905061351181612e80565b92915050565b60006020828403121561352d5761352c612e44565b5b600061353b84828501613502565b91505092915050565b60006040820190506135596000830185613086565b6135666020830184613086565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135d682612eac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136095761360861359c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613670602683612d8a565b915061367b82613614565b604082019050919050565b6000602082019050818103600083015261369f81613663565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613702602483612d8a565b915061370d826136a6565b604082019050919050565b60006020820190508181036000830152613731816136f5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613794602283612d8a565b915061379f82613738565b604082019050919050565b600060208201905081810360008301526137c381613787565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613826602583612d8a565b9150613831826137ca565b604082019050919050565b6000602082019050818103600083015261385581613819565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138b8602383612d8a565b91506138c38261385c565b604082019050919050565b600060208201905081810360008301526138e7816138ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061394a602983612d8a565b9150613955826138ee565b604082019050919050565b600060208201905081810360008301526139798161393d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139dc603f83612d8a565b91506139e782613980565b604082019050919050565b60006020820190508181036000830152613a0b816139cf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a48601c83612d8a565b9150613a5382613a12565b602082019050919050565b60006020820190508181036000830152613a7781613a3b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ada602383612d8a565b9150613ae582613a7e565b604082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b6000613b1b82612eac565b9150613b2683612eac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b5b57613b5a61359c565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc2602383612d8a565b9150613bcd82613b66565b604082019050919050565b60006020820190508181036000830152613bf181613bb5565b9050919050565b6000613c0382612eac565b9150613c0e83612eac565b925082821015613c2157613c2061359c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c88602a83612d8a565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b6000819050919050565b6000613ce3613cde613cd984613cbe565b612f58565b612eac565b9050919050565b613cf381613cc8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2e81612e6e565b82525050565b6000613d408383613d25565b60208301905092915050565b6000602082019050919050565b6000613d6482613cf9565b613d6e8185613d04565b9350613d7983613d15565b8060005b83811015613daa578151613d918882613d34565b9750613d9c83613d4c565b925050600181019050613d7d565b5085935050505092915050565b600060a082019050613dcc6000830188612fd2565b613dd96020830187613cea565b8181036040830152613deb8186613d59565b9050613dfa6060830185613086565b613e076080830184612fd2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e4b82612eac565b9150613e5683612eac565b925082613e6657613e65613e11565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ea7601b83612d8a565b9150613eb282613e71565b602082019050919050565b60006020820190508181036000830152613ed681613e9a565b9050919050565b6000613ee882612eac565b9150613ef383612eac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2c57613f2b61359c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f93602183612d8a565b9150613f9e82613f37565b604082019050919050565b60006020820190508181036000830152613fc281613f86565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ad6b953789cf352f81b47919762d4105b781fca967e55b13e6e975d9c1642fc64736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80638f70ccf7116100f7578063b792507e11610095578063d00efb2f11610064578063d00efb2f14610637578063d34628cc14610662578063dd62ed3e1461068b578063f2fde38b146106c8576101d8565b8063b792507e14610591578063bfd79284146105ba578063c3c8cd80146105f7578063c492f0461461060e576101d8565b806398a5c315116100d157806398a5c315146104d9578063a2a957bb14610502578063a9059cbb1461052b578063ae0f3f4514610568576101d8565b80638f70ccf71461045a5780638f9a55c01461048357806395d89b41146104ae576101d8565b806349bd5a5e1161016f57806370a082311161013e57806370a08231146103b0578063715018a6146103ed5780637d1db4a5146104045780638da5cb5b1461042f576101d8565b806349bd5a5e1461032e5780634f6a05c2146103595780636d8aa8f8146103705780636fc3eaec14610399576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106f1565b6040516101ff9190612e18565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612ee2565b61072e565b60405161023c9190612f3d565b60405180910390f35b34801561025157600080fd5b5061025a61074c565b6040516102679190612fb7565b60405180910390f35b34801561027c57600080fd5b50610285610772565b6040516102929190612fe1565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612ffc565b610783565b6040516102cf9190612f3d565b60405180910390f35b3480156102e457600080fd5b506102ed61085c565b6040516102fa9190612fe1565b60405180910390f35b34801561030f57600080fd5b50610318610862565b604051610325919061306b565b60405180910390f35b34801561033a57600080fd5b5061034361086b565b6040516103509190613095565b60405180910390f35b34801561036557600080fd5b5061036e610891565b005b34801561037c57600080fd5b50610397600480360381019061039291906130dc565b610b1d565b005b3480156103a557600080fd5b506103ae610bce565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190613109565b610c9f565b6040516103e49190612fe1565b60405180910390f35b3480156103f957600080fd5b50610402610cf0565b005b34801561041057600080fd5b50610419610e43565b6040516104269190612fe1565b60405180910390f35b34801561043b57600080fd5b50610444610e49565b6040516104519190613095565b60405180910390f35b34801561046657600080fd5b50610481600480360381019061047c91906130dc565b610e72565b005b34801561048f57600080fd5b50610498610f35565b6040516104a59190612fe1565b60405180910390f35b3480156104ba57600080fd5b506104c3610f3b565b6040516104d09190612e18565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190613136565b610f78565b005b34801561050e57600080fd5b5061052960048036038101906105249190613163565b611017565b005b34801561053757600080fd5b50610552600480360381019061054d9190612ee2565b6110e9565b60405161055f9190612f3d565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906131ca565b611107565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613109565b6111c3565b005b3480156105c657600080fd5b506105e160048036038101906105dc9190613109565b6112b3565b6040516105ee9190612f3d565b60405180910390f35b34801561060357600080fd5b5061060c6112d3565b005b34801561061a57600080fd5b506106356004803603810190610630919061326f565b6113ac565b005b34801561064357600080fd5b5061064c6114e6565b6040516106599190612fe1565b60405180910390f35b34801561066e57600080fd5b506106896004803603810190610684919061340d565b6114ec565b005b34801561069757600080fd5b506106b260048036038101906106ad9190613456565b611616565b6040516106bf9190612fe1565b60405180910390f35b3480156106d457600080fd5b506106ef60048036038101906106ea9190613109565b61169d565b005b60606040518060400160405280600981526020017f56656e6765616e63650000000000000000000000000000000000000000000000815250905090565b600061074261073b61185f565b8484611867565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610790848484611a32565b6108518461079c61185f565b61084c85604051806060016040528060288152602001613fca60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080261185f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220f9092919063ffffffff16565b611867565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61089961185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d906134e2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7a9190613517565b6040518363ffffffff1660e01b8152600401610a97929190613544565b6020604051808303816000875af1158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190613517565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b2561185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba9906134e2565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c0f61185f565b73ffffffffffffffffffffffffffffffffffffffff161480610c855750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c6d61185f565b73ffffffffffffffffffffffffffffffffffffffff16145b610c8e57600080fd5b6000479050610c9c81612273565b50565b6000610ce9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236e565b9050919050565b610cf861185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c906134e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e7a61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906134e2565b60405180910390fd5b80610f1157600080fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600c81526020017fe8a180e6b5b7e6b7b1e4bb870000000000000000000000000000000000000000815250905090565b610f8061185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611004906134e2565b60405180910390fd5b8060198190555050565b61101f61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a3906134e2565b60405180910390fd5b600f82111580156110be5750600f8111155b6110c757600080fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006110fd6110f661185f565b8484611a32565b6001905092915050565b61110f61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611193906134e2565b60405180910390fd5b674563918244f400008210156111b157600080fd5b81601781905550806018819055505050565b6111cb61185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124f906134e2565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661131461185f565b73ffffffffffffffffffffffffffffffffffffffff16148061138a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661137261185f565b73ffffffffffffffffffffffffffffffffffffffff16145b61139357600080fd5b600061139e30610c9f565b90506113a9816123dc565b50565b6113b461185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906134e2565b60405180910390fd5b60005b838390508110156114e05781600560008686858181106114675761146661356d565b5b905060200201602081019061147c9190613109565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114d8906135cb565b915050611444565b50505050565b60085481565b6114f461185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611578906134e2565b60405180910390fd5b60005b8151811015611612576001601160008484815181106115a6576115a561356d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061160a906135cb565b915050611584565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116a561185f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906134e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179990613686565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613718565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e906137aa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a259190612fe1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a999061383c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b09906138ce565b60405180910390fd5b60008111611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c90613960565b60405180910390fd5b611b5d610e49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611bcb5750611b9b610e49565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fb657601660149054906101000a900460ff16611c5a57611bec610e49565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c50906139f2565b60405180910390fd5b5b601754811115611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613a5e565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d435750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7990613af0565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e2f5760185481611de484610c9f565b611dee9190613b10565b10611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613bd8565b60405180910390fd5b5b6000611e3a30610c9f565b9050600060195482101590506017548210611e555760175491505b808015611e6f5750601660159054906101000a900460ff16155b8015611ec95750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611edf575060168054906101000a900460ff165b8015611f355750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f8b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fb357611f99826123dc565b60004790506000811115611fb157611fb047612273565b5b505b50505b600060019050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120685750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561207657600090506121fd565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561213957600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121e45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121fc57600b54600d81905550600c54600e819055505b5b61220984848484612655565b50505050565b6000838311158290612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e9190612e18565b60405180910390fd5b50600083856122669190613bf8565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122c360028461268290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122ee573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61233f60028461268290919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561236a573d6000803e3d6000fd5b5050565b60006006548211156123b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ac90613c9e565b60405180910390fd5b60006123bf6126cc565b90506123d4818461268290919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612414576124136132cf565b5b6040519080825280602002602001820160405280156124425781602001602082028036833780820191505090505b509050308160008151811061245a5761245961356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125259190613517565b816001815181106125395761253861356d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125a030601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611867565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612604959493929190613db7565b600060405180830381600087803b15801561261e57600080fd5b505af1158015612632573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b80612663576126626126f7565b5b61266e84848461273a565b8061267c5761267b612905565b5b50505050565b60006126c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612919565b905092915050565b60008060006126d961297c565b915091506126f0818361268290919063ffffffff16565b9250505090565b6000600d5414801561270b57506000600e54145b1561271557612738565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061274c876129de565b9550955095509550955095506127aa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a4690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288b81612aee565b6128958483612bab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f29190612fe1565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129579190612e18565b60405180910390fd5b506000838561296f9190613e40565b9050809150509392505050565b600080600060065490506000683635c9adc5dea0000090506129b2683635c9adc5dea0000060065461268290919063ffffffff16565b8210156129d157600654683635c9adc5dea000009350935050506129da565b81819350935050505b9091565b60008060008060008060008060006129fb8a600d54600e54612be5565b9250925092506000612a0b6126cc565b90506000806000612a1e8e878787612c7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061220f565b905092915050565b6000808284612a9f9190613b10565b905083811015612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb90613ebd565b60405180910390fd5b8091505092915050565b6000612af86126cc565b90506000612b0f8284612d0490919063ffffffff16565b9050612b6381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a9090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bc082600654612a4690919063ffffffff16565b600681905550612bdb81600754612a9090919063ffffffff16565b6007819055505050565b600080600080612c116064612c03888a612d0490919063ffffffff16565b61268290919063ffffffff16565b90506000612c3b6064612c2d888b612d0490919063ffffffff16565b61268290919063ffffffff16565b90506000612c6482612c56858c612a4690919063ffffffff16565b612a4690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c948589612d0490919063ffffffff16565b90506000612cab8689612d0490919063ffffffff16565b90506000612cc28789612d0490919063ffffffff16565b90506000612ceb82612cdd8587612a4690919063ffffffff16565b612a4690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d175760009050612d79565b60008284612d259190613edd565b9050828482612d349190613e40565b14612d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6b90613fa9565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612db9578082015181840152602081019050612d9e565b83811115612dc8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612dea82612d7f565b612df48185612d8a565b9350612e04818560208601612d9b565b612e0d81612dce565b840191505092915050565b60006020820190508181036000830152612e328184612ddf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e7982612e4e565b9050919050565b612e8981612e6e565b8114612e9457600080fd5b50565b600081359050612ea681612e80565b92915050565b6000819050919050565b612ebf81612eac565b8114612eca57600080fd5b50565b600081359050612edc81612eb6565b92915050565b60008060408385031215612ef957612ef8612e44565b5b6000612f0785828601612e97565b9250506020612f1885828601612ecd565b9150509250929050565b60008115159050919050565b612f3781612f22565b82525050565b6000602082019050612f526000830184612f2e565b92915050565b6000819050919050565b6000612f7d612f78612f7384612e4e565b612f58565b612e4e565b9050919050565b6000612f8f82612f62565b9050919050565b6000612fa182612f84565b9050919050565b612fb181612f96565b82525050565b6000602082019050612fcc6000830184612fa8565b92915050565b612fdb81612eac565b82525050565b6000602082019050612ff66000830184612fd2565b92915050565b60008060006060848603121561301557613014612e44565b5b600061302386828701612e97565b935050602061303486828701612e97565b925050604061304586828701612ecd565b9150509250925092565b600060ff82169050919050565b6130658161304f565b82525050565b6000602082019050613080600083018461305c565b92915050565b61308f81612e6e565b82525050565b60006020820190506130aa6000830184613086565b92915050565b6130b981612f22565b81146130c457600080fd5b50565b6000813590506130d6816130b0565b92915050565b6000602082840312156130f2576130f1612e44565b5b6000613100848285016130c7565b91505092915050565b60006020828403121561311f5761311e612e44565b5b600061312d84828501612e97565b91505092915050565b60006020828403121561314c5761314b612e44565b5b600061315a84828501612ecd565b91505092915050565b6000806000806080858703121561317d5761317c612e44565b5b600061318b87828801612ecd565b945050602061319c87828801612ecd565b93505060406131ad87828801612ecd565b92505060606131be87828801612ecd565b91505092959194509250565b600080604083850312156131e1576131e0612e44565b5b60006131ef85828601612ecd565b925050602061320085828601612ecd565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261322f5761322e61320a565b5b8235905067ffffffffffffffff81111561324c5761324b61320f565b5b60208301915083602082028301111561326857613267613214565b5b9250929050565b60008060006040848603121561328857613287612e44565b5b600084013567ffffffffffffffff8111156132a6576132a5612e49565b5b6132b286828701613219565b935093505060206132c5868287016130c7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330782612dce565b810181811067ffffffffffffffff82111715613326576133256132cf565b5b80604052505050565b6000613339612e3a565b905061334582826132fe565b919050565b600067ffffffffffffffff821115613365576133646132cf565b5b602082029050602081019050919050565b60006133896133848461334a565b61332f565b905080838252602082019050602084028301858111156133ac576133ab613214565b5b835b818110156133d557806133c18882612e97565b8452602084019350506020810190506133ae565b5050509392505050565b600082601f8301126133f4576133f361320a565b5b8135613404848260208601613376565b91505092915050565b60006020828403121561342357613422612e44565b5b600082013567ffffffffffffffff81111561344157613440612e49565b5b61344d848285016133df565b91505092915050565b6000806040838503121561346d5761346c612e44565b5b600061347b85828601612e97565b925050602061348c85828601612e97565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134cc602083612d8a565b91506134d782613496565b602082019050919050565b600060208201905081810360008301526134fb816134bf565b9050919050565b60008151905061351181612e80565b92915050565b60006020828403121561352d5761352c612e44565b5b600061353b84828501613502565b91505092915050565b60006040820190506135596000830185613086565b6135666020830184613086565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135d682612eac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156136095761360861359c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613670602683612d8a565b915061367b82613614565b604082019050919050565b6000602082019050818103600083015261369f81613663565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613702602483612d8a565b915061370d826136a6565b604082019050919050565b60006020820190508181036000830152613731816136f5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613794602283612d8a565b915061379f82613738565b604082019050919050565b600060208201905081810360008301526137c381613787565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613826602583612d8a565b9150613831826137ca565b604082019050919050565b6000602082019050818103600083015261385581613819565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138b8602383612d8a565b91506138c38261385c565b604082019050919050565b600060208201905081810360008301526138e7816138ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061394a602983612d8a565b9150613955826138ee565b604082019050919050565b600060208201905081810360008301526139798161393d565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006139dc603f83612d8a565b91506139e782613980565b604082019050919050565b60006020820190508181036000830152613a0b816139cf565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613a48601c83612d8a565b9150613a5382613a12565b602082019050919050565b60006020820190508181036000830152613a7781613a3b565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ada602383612d8a565b9150613ae582613a7e565b604082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b6000613b1b82612eac565b9150613b2683612eac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b5b57613b5a61359c565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc2602383612d8a565b9150613bcd82613b66565b604082019050919050565b60006020820190508181036000830152613bf181613bb5565b9050919050565b6000613c0382612eac565b9150613c0e83612eac565b925082821015613c2157613c2061359c565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613c88602a83612d8a565b9150613c9382613c2c565b604082019050919050565b60006020820190508181036000830152613cb781613c7b565b9050919050565b6000819050919050565b6000613ce3613cde613cd984613cbe565b612f58565b612eac565b9050919050565b613cf381613cc8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2e81612e6e565b82525050565b6000613d408383613d25565b60208301905092915050565b6000602082019050919050565b6000613d6482613cf9565b613d6e8185613d04565b9350613d7983613d15565b8060005b83811015613daa578151613d918882613d34565b9750613d9c83613d4c565b925050600181019050613d7d565b5085935050505092915050565b600060a082019050613dcc6000830188612fd2565b613dd96020830187613cea565b8181036040830152613deb8186613d59565b9050613dfa6060830185613086565b613e076080830184612fd2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e4b82612eac565b9150613e5683612eac565b925082613e6657613e65613e11565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ea7601b83612d8a565b9150613eb282613e71565b602082019050919050565b60006020820190508181036000830152613ed681613e9a565b9050919050565b6000613ee882612eac565b9150613ef383612eac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f2c57613f2b61359c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f93602183612d8a565b9150613f9e82613f37565b604082019050919050565b60006020820190508181036000830152613fc281613f86565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ad6b953789cf352f81b47919762d4105b781fca967e55b13e6e975d9c1642fc64736f6c634300080a0033
Deployed Bytecode Sourcemap
4848:13716:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7171:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7451:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8305:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7359:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6339:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12061:340;;;;;;;;;;;;;:::i;:::-;;17963:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13492:235;;;;;;;;;;;;;:::i;:::-;;7555:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2321:148;;;;;;;;;;;;;:::i;:::-;;6483:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2105:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13068:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6540:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7263:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17809:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17437:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7702:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18082:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13912:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5985:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13247:236;;;;;;;;;;;;;:::i;:::-;;18325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5561:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13736:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7910:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2478:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7171:83;7208:13;7241:5;;;;;;;;;;;;;;;;;7234:12;;7171:83;:::o;8103:193::-;8205:4;8227:39;8236:12;:10;:12::i;:::-;8250:7;8259:6;8227:8;:39::i;:::-;8284:4;8277:11;;8103:193;;;;:::o;6291:41::-;;;;;;;;;;;;;:::o;7451:95::-;7504:7;5444:21;7524:14;;7451:95;:::o;8305:446::-;8437:4;8454:36;8464:6;8472:9;8483:6;8454:9;:36::i;:::-;8501:220;8524:6;8545:12;:10;:12::i;:::-;8572:138;8628:6;8572:138;;;;;;;;;;;;;;;;;:11;:19;8584:6;8572:19;;;;;;;;;;;;;;;:33;8592:12;:10;:12::i;:::-;8572:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8501:8;:220::i;:::-;8739:4;8732:11;;8305:446;;;;;:::o;6599:54::-;;;;:::o;7359:83::-;7400:5;5117:1;7418:16;;7359:83;:::o;6339:28::-;;;;;;;;;;;;;:::o;12061:340::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12111:35:::1;12168:42;12111:100;;12240:16;12222:15;;:34;;;;;;;;;;;;;;;;;;12301:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12283:70;;;12362:4;12369:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12283:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12267:13;;:126;;;;;;;;;;;;;;;;;;12098:303;12061:340::o:0;17963:101::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18044:12:::1;18030:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17963:101:::0;:::o;13492:235::-;13558:19;;;;;;;;;;;13542:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13597:17;;;;;;;;;;;13581:33;;:12;:10;:12::i;:::-;:33;;;13542:72;13534:81;;;;;;13626:26;13655:21;13626:50;;13687:32;13700:18;13687:12;:32::i;:::-;13523:204;13492:235::o;7555:138::-;7621:7;7648:37;7668:7;:16;7676:7;7668:16;;;;;;;;;;;;;;;;7648:19;:37::i;:::-;7641:44;;7555:138;;;:::o;2321:148::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2428:1:::1;2391:40;;2412:6;::::0;::::1;;;;;;;;2391:40;;;;;;;;;;;;2459:1;2442:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2321:148::o:0;6483:49::-;;;;:::o;2105:79::-;2143:7;2170:6;;;;;;;;;;;2163:13;;2105:79;:::o;13068:170::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13143:12:::1;13135:21;;;::::0;::::1;;13181:12;13167:11;;:26;;;;;;;;;;;;;;;;;;13218:12;13204:11;:26;;;;13068:170:::0;:::o;6540:51::-;;;;:::o;7263:87::-;7302:13;7335:7;;;;;;;;;;;;;;;;;7328:14;;7263:87;:::o;17809:139::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17922:18:::1;17900:19;:40;;;;17809:139:::0;:::o;17437:357::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17596:2:::1;17581:11;:17;;:40;;;;;17619:2;17602:12;:19;;17581:40;17573:50;;;::::0;::::1;;17651:13;17634:14;:30;;;;17693:14;17675:15;:32;;;;17736:11;17721:12;:26;;;;17774:12;17758:13;:28;;;;17437:357:::0;;;;:::o;7702:199::-;7807:4;7829:42;7839:12;:10;:12::i;:::-;7853:9;7864:6;7829:9;:42::i;:::-;7889:4;7882:11;;7702:199;;;;:::o;18082:228::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18204:18:::1;18189:11;:33;;18181:43;;;::::0;::::1;;18250:11;18235:12;:26;;;;18289:13;18272:14;:30;;;;18082:228:::0;;:::o;13912:93::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13992:5:::1;13977:4;:12;13982:6;13977:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13912:93:::0;:::o;5985:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13247:236::-;13313:19;;;;;;;;;;;13297:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13352:17;;;;;;;;;;;13336:33;;:12;:10;:12::i;:::-;:33;;;13297:72;13289:81;;;;;;13381:23;13407:24;13425:4;13407:9;:24::i;:::-;13381:50;;13442:33;13459:15;13442:16;:33::i;:::-;13278:205;13247:236::o;18325:::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18444:9:::1;18440:114;18463:8;;:15;;18459:1;:19;18440:114;;;18534:8;18500:18;:31;18519:8;;18528:1;18519:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18500:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18480:3;;;;;:::i;:::-;;;;18440:114;;;;18325:236:::0;;;:::o;5561:26::-;;;;:::o;13736:167::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13810:9:::1;13805:91;13829:5;:12;13825:1;:16;13805:91;;;13880:4;13863;:14;13868:5;13874:1;13868:8;;;;;;;;:::i;:::-;;;;;;;;13863:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13843:3;;;;;:::i;:::-;;;;13805:91;;;;13736:167:::0;:::o;7910:184::-;8027:7;8059:11;:18;8071:5;8059:18;;;;;;;;;;;;;;;:27;8078:7;8059:27;;;;;;;;;;;;;;;;8052:34;;7910:184;;;;:::o;2478:244::-;2243:12;:10;:12::i;:::-;2233:22;;:6;;;;;;;;;;:22;;;2225:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:1:::1;2567:22;;:8;:22;;;;2559:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2677:8;2648:38;;2669:6;::::0;::::1;;;;;;;;2648:38;;;;;;;;;;;;2706:8;2697:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2478:244:::0;:::o;854:98::-;907:7;934:10;927:17;;854:98;:::o;9448:369::-;9592:1;9575:19;;:5;:19;;;;9567:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9673:1;9654:21;;:7;:21;;;;9646:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9755:6;9725:11;:18;9737:5;9725:18;;;;;;;;;;;;;;;:27;9744:7;9725:27;;;;;;;;;;;;;;;:36;;;;9793:7;9777:32;;9786:5;9777:32;;;9802:6;9777:32;;;;;;:::i;:::-;;;;;;;;9448:369;;;:::o;9826:2229::-;9964:1;9948:18;;:4;:18;;;;9940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10041:1;10027:16;;:2;:16;;;;10019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10111:1;10102:6;:10;10094:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10184:7;:5;:7::i;:::-;10176:15;;:4;:15;;;;:32;;;;;10201:7;:5;:7::i;:::-;10195:13;;:2;:13;;;;10176:32;10172:1261;;;10247:11;;;;;;;;;;;10242:144;;10295:7;:5;:7::i;:::-;10287:15;;:4;:15;;;10279:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10242:144;10421:12;;10411:6;:22;;10403:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10490:4;:10;10495:4;10490:10;;;;;;;;;;;;;;;;;;;;;;;;;10489:11;:24;;;;;10505:4;:8;10510:2;10505:8;;;;;;;;;;;;;;;;;;;;;;;;;10504:9;10489:24;10481:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10595:13;;;;;;;;;;;10589:19;;:2;:19;;;10586:146;;10662:14;;10653:6;10637:13;10647:2;10637:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10629:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10586:146;10749:28;10780:24;10798:4;10780:9;:24::i;:::-;10749:55;;10819:12;10858:19;;10834:20;:43;;10819:58;;10922:12;;10898:20;:36;10895:124;;10991:12;;10968:35;;10895:124;11040:7;:18;;;;;11052:6;;;;;;;;;;;11051:7;11040:18;:43;;;;;11070:13;;;;;;;;;;;11062:21;;:4;:21;;;;11040:43;:58;;;;;11087:11;;;;;;;;;;11040:58;:87;;;;;11103:18;:24;11122:4;11103:24;;;;;;;;;;;;;;;;;;;;;;;;;11102:25;11040:87;:114;;;;;11132:18;:22;11151:2;11132:22;;;;;;;;;;;;;;;;;;;;;;;;;11131:23;11040:114;11036:386;;;11175:38;11192:20;11175:16;:38::i;:::-;11232:26;11261:21;11232:50;;11326:1;11305:18;:22;11301:106;;;11352:35;11365:21;11352:12;:35::i;:::-;11301:106;11156:266;11036:386;10210:1223;;10172:1261;11446:12;11461:4;11446:19;;11502:13;;;;;;;;;;;11494:21;;:4;:21;;;;:44;;;;;11525:13;;;;;;;;;;;11519:19;;:2;:19;;;;11494:44;11489:504;;;11566:5;11556:15;;11489:504;;;11632:13;;;;;;;;;;;11624:21;;:4;:21;;;:55;;;;;11663:15;;;;;;;;;;;11649:30;;:2;:30;;;;11624:55;11621:162;;;11712:14;;11700:9;:26;;;;11755:12;;11745:7;:22;;;;11621:162;11824:13;;;;;;;;;;;11818:19;;:2;:19;;;:55;;;;;11857:15;;;;;;;;;;;11841:32;;:4;:32;;;;11818:55;11814:165;;;11906:15;;11894:9;:27;;;;11950:13;;11940:7;:23;;;;11814:165;11489:504;12006:41;12021:4;12027:2;12031:6;12039:7;12006:14;:41::i;:::-;9929:2126;9826:2229;;;:::o;3090:224::-;3210:7;3243:1;3238;:6;;3246:12;3230:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3270:9;3286:1;3282;:5;;;;:::i;:::-;3270:17;;3305:1;3298:8;;;3090:224;;;;;:::o;12899:160::-;12956:19;;;;;;;;;;;:28;;:43;12985:13;12996:1;12985:6;:10;;:13;;;;:::i;:::-;12956:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13010:17;;;;;;;;;;;:26;;:41;13037:13;13048:1;13037:6;:10;;:13;;;;:::i;:::-;13010:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12899:160;:::o;8760:323::-;8855:7;8913;;8902;:18;;8880:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9001:19;9023:10;:8;:10::i;:::-;9001:32;;9051:24;9063:11;9051:7;:11;;:24;;;;:::i;:::-;9044:31;;;8760:323;;;:::o;12407:483::-;6758:4;6749:6;;:13;;;;;;;;;;;;;;;;;;12485:21:::1;12523:1;12509:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12485:40;;12554:4;12536;12541:1;12536:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12580:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12570:4;12575:1;12570:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12613:62;12630:4;12645:15;;;;;;;;;;;12663:11;12613:8;:62::i;:::-;12686:15;;;;;;;;;;;:66;;;12767:11;12793:1;12809:4;12836;12856:15;12686:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12474:416;6794:5:::0;6785:6;;:14;;;;;;;;;;;;;;;;;;12407:483;:::o;14014:282::-;14170:7;14165:28;;14179:14;:12;:14::i;:::-;14165:28;14204:44;14222:6;14230:9;14241:6;14204:17;:44::i;:::-;14264:7;14259:29;;14273:15;:13;:15::i;:::-;14259:29;14014:282;;;;:::o;3578:132::-;3636:7;3663:39;3667:1;3670;3663:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3656:46;;3578:132;;;;:::o;16992:167::-;17034:7;17055:15;17072;17091:19;:17;:19::i;:::-;17054:56;;;;17131:20;17143:7;17131;:11;;:20;;;;:::i;:::-;17124:27;;;;16992:167;:::o;9092:221::-;9152:1;9139:9;;:14;:30;;;;;9168:1;9157:7;;:12;9139:30;9135:43;;;9171:7;;9135:43;9211:9;;9191:17;:29;;;;9249:7;;9231:15;:25;;;;9282:1;9270:9;:13;;;;9304:1;9294:7;:11;;;;9092:221;:::o;14305:610::-;14452:15;14482:23;14520:12;14547:23;14585:12;14612:13;14639:19;14650:7;14639:10;:19::i;:::-;14437:221;;;;;;;;;;;;14687:28;14707:7;14687;:15;14695:6;14687:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14669:7;:15;14677:6;14669:15;;;;;;;;;;;;;;;:46;;;;14747:39;14770:15;14747:7;:18;14755:9;14747:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14726:7;:18;14734:9;14726:18;;;;;;;;;;;;;;;:60;;;;14797:16;14807:5;14797:9;:16::i;:::-;14824:23;14836:4;14842;14824:11;:23::i;:::-;14880:9;14863:44;;14872:6;14863:44;;;14891:15;14863:44;;;;;;:::i;:::-;;;;;;;;14426:489;;;;;;14305:610;;;:::o;9322:117::-;9378:17;;9366:9;:29;;;;9416:15;;9406:7;:25;;;;9322:117::o;3719:223::-;3839:7;3871:1;3867;:5;3874:12;3859:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3898:9;3914:1;3910;:5;;;;:::i;:::-;3898:17;;3933:1;3926:8;;;3719:223;;;;;:::o;17168:260::-;17219:7;17228;17248:15;17266:7;;17248:25;;17284:15;5444:21;17284:25;;17334:20;5444:21;17334:7;;:11;;:20;;;;:::i;:::-;17324:7;:30;17320:61;;;17364:7;;5444:21;17356:25;;;;;;;;17320:61;17403:7;17412;17395:25;;;;;;17168:260;;;:::o;15338:618::-;15438:7;15460;15482;15504;15526;15548;15584:23;15609:12;15623:13;15653:40;15665:7;15674:9;;15685:7;;15653:11;:40::i;:::-;15583:110;;;;;;15704:19;15726:10;:8;:10::i;:::-;15704:32;;15748:15;15765:23;15790:12;15819:46;15831:7;15840:4;15846:5;15853:11;15819;:46::i;:::-;15747:118;;;;;;15887:7;15896:15;15913:4;15919:15;15936:4;15942:5;15879:69;;;;;;;;;;;;;;;;;;;15338:618;;;;;;;:::o;2945:136::-;3003:7;3030:43;3034:1;3037;3030:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3023:50;;2945:136;;;;:::o;2757:179::-;2815:7;2835:9;2851:1;2847;:5;;;;:::i;:::-;2835:17;;2876:1;2871;:6;;2863:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2927:1;2920:8;;;2757:179;;;;:::o;14924:211::-;14977:19;14999:10;:8;:10::i;:::-;14977:32;;15020:13;15036:22;15046:11;15036:5;:9;;:22;;;;:::i;:::-;15020:38;;15094:33;15121:5;15094:7;:22;15110:4;15094:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15069:7;:22;15085:4;15069:22;;;;;;;;;;;;;;;:58;;;;14966:169;;14924:211;:::o;15144:147::-;15222:17;15234:4;15222:7;;:11;;:17;;;;:::i;:::-;15212:7;:27;;;;15263:20;15278:4;15263:10;;:14;;:20;;;;:::i;:::-;15250:10;:33;;;;15144:147;;:::o;15965:472::-;16134:7;16156;16178;16213:12;16228:30;16254:3;16228:21;16240:8;16228:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16213:45;;16269:13;16285:28;16309:3;16285:19;16297:6;16285:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16269:44;;16324:23;16350:28;16372:5;16350:17;16362:4;16350:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16324:54;;16400:15;16417:4;16423:5;16392:37;;;;;;;;;15965:472;;;;;;;:::o;16446:537::-;16640:7;16662;16684;16719:15;16737:24;16749:11;16737:7;:11;;:24;;;;:::i;:::-;16719:42;;16772:12;16787:21;16796:11;16787:4;:8;;:21;;;;:::i;:::-;16772:36;;16819:13;16835:22;16845:11;16835:5;:9;;:22;;;;:::i;:::-;16819:38;;16868:23;16894:28;16916:5;16894:17;16906:4;16894:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16868:54;;16944:7;16953:15;16970:4;16936:39;;;;;;;;;;16446:537;;;;;;;;:::o;3323:246::-;3381:7;3410:1;3405;:6;3401:47;;;3435:1;3428:8;;;;3401:47;3458:9;3474:1;3470;:5;;;;:::i;:::-;3458:17;;3503:1;3498;3494;:5;;;;:::i;:::-;:10;3486:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3560:1;3553:8;;;3323:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:474::-;8325:6;8333;8382:2;8370:9;8361:7;8357:23;8353:32;8350:119;;;8388:79;;:::i;:::-;8350:119;8508:1;8533:53;8578:7;8569:6;8558:9;8554:22;8533:53;:::i;:::-;8523:63;;8479:117;8635:2;8661:53;8706:7;8697:6;8686:9;8682:22;8661:53;:::i;:::-;8651:63;;8606:118;8257:474;;;;;:::o;8737:117::-;8846:1;8843;8836:12;8860:117;8969:1;8966;8959:12;8983:117;9092:1;9089;9082:12;9123:568;9196:8;9206:6;9256:3;9249:4;9241:6;9237:17;9233:27;9223:122;;9264:79;;:::i;:::-;9223:122;9377:6;9364:20;9354:30;;9407:18;9399:6;9396:30;9393:117;;;9429:79;;:::i;:::-;9393:117;9543:4;9535:6;9531:17;9519:29;;9597:3;9589:4;9581:6;9577:17;9567:8;9563:32;9560:41;9557:128;;;9604:79;;:::i;:::-;9557:128;9123:568;;;;;:::o;9697:698::-;9789:6;9797;9805;9854:2;9842:9;9833:7;9829:23;9825:32;9822:119;;;9860:79;;:::i;:::-;9822:119;10008:1;9997:9;9993:17;9980:31;10038:18;10030:6;10027:30;10024:117;;;10060:79;;:::i;:::-;10024:117;10173:80;10245:7;10236:6;10225:9;10221:22;10173:80;:::i;:::-;10155:98;;;;9951:312;10302:2;10328:50;10370:7;10361:6;10350:9;10346:22;10328:50;:::i;:::-;10318:60;;10273:115;9697:698;;;;;:::o;10401:180::-;10449:77;10446:1;10439:88;10546:4;10543:1;10536:15;10570:4;10567:1;10560:15;10587:281;10670:27;10692:4;10670:27;:::i;:::-;10662:6;10658:40;10800:6;10788:10;10785:22;10764:18;10752:10;10749:34;10746:62;10743:88;;;10811:18;;:::i;:::-;10743:88;10851:10;10847:2;10840:22;10630:238;10587:281;;:::o;10874:129::-;10908:6;10935:20;;:::i;:::-;10925:30;;10964:33;10992:4;10984:6;10964:33;:::i;:::-;10874:129;;;:::o;11009:311::-;11086:4;11176:18;11168:6;11165:30;11162:56;;;11198:18;;:::i;:::-;11162:56;11248:4;11240:6;11236:17;11228:25;;11308:4;11302;11298:15;11290:23;;11009:311;;;:::o;11343:710::-;11439:5;11464:81;11480:64;11537:6;11480:64;:::i;:::-;11464:81;:::i;:::-;11455:90;;11565:5;11594:6;11587:5;11580:21;11628:4;11621:5;11617:16;11610:23;;11681:4;11673:6;11669:17;11661:6;11657:30;11710:3;11702:6;11699:15;11696:122;;;11729:79;;:::i;:::-;11696:122;11844:6;11827:220;11861:6;11856:3;11853:15;11827:220;;;11936:3;11965:37;11998:3;11986:10;11965:37;:::i;:::-;11960:3;11953:50;12032:4;12027:3;12023:14;12016:21;;11903:144;11887:4;11882:3;11878:14;11871:21;;11827:220;;;11831:21;11445:608;;11343:710;;;;;:::o;12076:370::-;12147:5;12196:3;12189:4;12181:6;12177:17;12173:27;12163:122;;12204:79;;:::i;:::-;12163:122;12321:6;12308:20;12346:94;12436:3;12428:6;12421:4;12413:6;12409:17;12346:94;:::i;:::-;12337:103;;12153:293;12076:370;;;;:::o;12452:539::-;12536:6;12585:2;12573:9;12564:7;12560:23;12556:32;12553:119;;;12591:79;;:::i;:::-;12553:119;12739:1;12728:9;12724:17;12711:31;12769:18;12761:6;12758:30;12755:117;;;12791:79;;:::i;:::-;12755:117;12896:78;12966:7;12957:6;12946:9;12942:22;12896:78;:::i;:::-;12886:88;;12682:302;12452:539;;;;:::o;12997:474::-;13065:6;13073;13122:2;13110:9;13101:7;13097:23;13093:32;13090:119;;;13128:79;;:::i;:::-;13090:119;13248:1;13273:53;13318:7;13309:6;13298:9;13294:22;13273:53;:::i;:::-;13263:63;;13219:117;13375:2;13401:53;13446:7;13437:6;13426:9;13422:22;13401:53;:::i;:::-;13391:63;;13346:118;12997:474;;;;;:::o;13477:182::-;13617:34;13613:1;13605:6;13601:14;13594:58;13477:182;:::o;13665:366::-;13807:3;13828:67;13892:2;13887:3;13828:67;:::i;:::-;13821:74;;13904:93;13993:3;13904:93;:::i;:::-;14022:2;14017:3;14013:12;14006:19;;13665:366;;;:::o;14037:419::-;14203:4;14241:2;14230:9;14226:18;14218:26;;14290:9;14284:4;14280:20;14276:1;14265:9;14261:17;14254:47;14318:131;14444:4;14318:131;:::i;:::-;14310:139;;14037:419;;;:::o;14462:143::-;14519:5;14550:6;14544:13;14535:22;;14566:33;14593:5;14566:33;:::i;:::-;14462:143;;;;:::o;14611:351::-;14681:6;14730:2;14718:9;14709:7;14705:23;14701:32;14698:119;;;14736:79;;:::i;:::-;14698:119;14856:1;14881:64;14937:7;14928:6;14917:9;14913:22;14881:64;:::i;:::-;14871:74;;14827:128;14611:351;;;;:::o;14968:332::-;15089:4;15127:2;15116:9;15112:18;15104:26;;15140:71;15208:1;15197:9;15193:17;15184:6;15140:71;:::i;:::-;15221:72;15289:2;15278:9;15274:18;15265:6;15221:72;:::i;:::-;14968:332;;;;;:::o;15306:180::-;15354:77;15351:1;15344:88;15451:4;15448:1;15441:15;15475:4;15472:1;15465:15;15492:180;15540:77;15537:1;15530:88;15637:4;15634:1;15627:15;15661:4;15658:1;15651:15;15678:233;15717:3;15740:24;15758:5;15740:24;:::i;:::-;15731:33;;15786:66;15779:5;15776:77;15773:103;;;15856:18;;:::i;:::-;15773:103;15903:1;15896:5;15892:13;15885:20;;15678:233;;;:::o;15917:225::-;16057:34;16053:1;16045:6;16041:14;16034:58;16126:8;16121:2;16113:6;16109:15;16102:33;15917:225;:::o;16148:366::-;16290:3;16311:67;16375:2;16370:3;16311:67;:::i;:::-;16304:74;;16387:93;16476:3;16387:93;:::i;:::-;16505:2;16500:3;16496:12;16489:19;;16148:366;;;:::o;16520:419::-;16686:4;16724:2;16713:9;16709:18;16701:26;;16773:9;16767:4;16763:20;16759:1;16748:9;16744:17;16737:47;16801:131;16927:4;16801:131;:::i;:::-;16793:139;;16520:419;;;:::o;16945:223::-;17085:34;17081:1;17073:6;17069:14;17062:58;17154:6;17149:2;17141:6;17137:15;17130:31;16945:223;:::o;17174:366::-;17316:3;17337:67;17401:2;17396:3;17337:67;:::i;:::-;17330:74;;17413:93;17502:3;17413:93;:::i;:::-;17531:2;17526:3;17522:12;17515:19;;17174:366;;;:::o;17546:419::-;17712:4;17750:2;17739:9;17735:18;17727:26;;17799:9;17793:4;17789:20;17785:1;17774:9;17770:17;17763:47;17827:131;17953:4;17827:131;:::i;:::-;17819:139;;17546:419;;;:::o;17971:221::-;18111:34;18107:1;18099:6;18095:14;18088:58;18180:4;18175:2;18167:6;18163:15;18156:29;17971:221;:::o;18198:366::-;18340:3;18361:67;18425:2;18420:3;18361:67;:::i;:::-;18354:74;;18437:93;18526:3;18437:93;:::i;:::-;18555:2;18550:3;18546:12;18539:19;;18198:366;;;:::o;18570:419::-;18736:4;18774:2;18763:9;18759:18;18751:26;;18823:9;18817:4;18813:20;18809:1;18798:9;18794:17;18787:47;18851:131;18977:4;18851:131;:::i;:::-;18843:139;;18570:419;;;:::o;18995:224::-;19135:34;19131:1;19123:6;19119:14;19112:58;19204:7;19199:2;19191:6;19187:15;19180:32;18995:224;:::o;19225:366::-;19367:3;19388:67;19452:2;19447:3;19388:67;:::i;:::-;19381:74;;19464:93;19553:3;19464:93;:::i;:::-;19582:2;19577:3;19573:12;19566:19;;19225:366;;;:::o;19597:419::-;19763:4;19801:2;19790:9;19786:18;19778:26;;19850:9;19844:4;19840:20;19836:1;19825:9;19821:17;19814:47;19878:131;20004:4;19878:131;:::i;:::-;19870:139;;19597:419;;;:::o;20022:222::-;20162:34;20158:1;20150:6;20146:14;20139:58;20231:5;20226:2;20218:6;20214:15;20207:30;20022:222;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:228::-;21187:34;21183:1;21175:6;21171:14;21164:58;21256:11;21251:2;21243:6;21239:15;21232:36;21047:228;:::o;21281:366::-;21423:3;21444:67;21508:2;21503:3;21444:67;:::i;:::-;21437:74;;21520:93;21609:3;21520:93;:::i;:::-;21638:2;21633:3;21629:12;21622:19;;21281:366;;;:::o;21653:419::-;21819:4;21857:2;21846:9;21842:18;21834:26;;21906:9;21900:4;21896:20;21892:1;21881:9;21877:17;21870:47;21934:131;22060:4;21934:131;:::i;:::-;21926:139;;21653:419;;;:::o;22078:250::-;22218:34;22214:1;22206:6;22202:14;22195:58;22287:33;22282:2;22274:6;22270:15;22263:58;22078:250;:::o;22334:366::-;22476:3;22497:67;22561:2;22556:3;22497:67;:::i;:::-;22490:74;;22573:93;22662:3;22573:93;:::i;:::-;22691:2;22686:3;22682:12;22675:19;;22334:366;;;:::o;22706:419::-;22872:4;22910:2;22899:9;22895:18;22887:26;;22959:9;22953:4;22949:20;22945:1;22934:9;22930:17;22923:47;22987:131;23113:4;22987:131;:::i;:::-;22979:139;;22706:419;;;:::o;23131:178::-;23271:30;23267:1;23259:6;23255:14;23248:54;23131:178;:::o;23315:366::-;23457:3;23478:67;23542:2;23537:3;23478:67;:::i;:::-;23471:74;;23554:93;23643:3;23554:93;:::i;:::-;23672:2;23667:3;23663:12;23656:19;;23315:366;;;:::o;23687:419::-;23853:4;23891:2;23880:9;23876:18;23868:26;;23940:9;23934:4;23930:20;23926:1;23915:9;23911:17;23904:47;23968:131;24094:4;23968:131;:::i;:::-;23960:139;;23687:419;;;:::o;24112:222::-;24252:34;24248:1;24240:6;24236:14;24229:58;24321:5;24316:2;24308:6;24304:15;24297:30;24112:222;:::o;24340:366::-;24482:3;24503:67;24567:2;24562:3;24503:67;:::i;:::-;24496:74;;24579:93;24668:3;24579:93;:::i;:::-;24697:2;24692:3;24688:12;24681:19;;24340:366;;;:::o;24712:419::-;24878:4;24916:2;24905:9;24901:18;24893:26;;24965:9;24959:4;24955:20;24951:1;24940:9;24936:17;24929:47;24993:131;25119:4;24993:131;:::i;:::-;24985:139;;24712:419;;;:::o;25137:305::-;25177:3;25196:20;25214:1;25196:20;:::i;:::-;25191:25;;25230:20;25248:1;25230:20;:::i;:::-;25225:25;;25384:1;25316:66;25312:74;25309:1;25306:81;25303:107;;;25390:18;;:::i;:::-;25303:107;25434:1;25431;25427:9;25420:16;;25137:305;;;;:::o;25448:222::-;25588:34;25584:1;25576:6;25572:14;25565:58;25657:5;25652:2;25644:6;25640:15;25633:30;25448:222;:::o;25676:366::-;25818:3;25839:67;25903:2;25898:3;25839:67;:::i;:::-;25832:74;;25915:93;26004:3;25915:93;:::i;:::-;26033:2;26028:3;26024:12;26017:19;;25676:366;;;:::o;26048:419::-;26214:4;26252:2;26241:9;26237:18;26229:26;;26301:9;26295:4;26291:20;26287:1;26276:9;26272:17;26265:47;26329:131;26455:4;26329:131;:::i;:::-;26321:139;;26048:419;;;:::o;26473:191::-;26513:4;26533:20;26551:1;26533:20;:::i;:::-;26528:25;;26567:20;26585:1;26567:20;:::i;:::-;26562:25;;26606:1;26603;26600:8;26597:34;;;26611:18;;:::i;:::-;26597:34;26656:1;26653;26649:9;26641:17;;26473:191;;;;:::o;26670:229::-;26810:34;26806:1;26798:6;26794:14;26787:58;26879:12;26874:2;26866:6;26862:15;26855:37;26670:229;:::o;26905:366::-;27047:3;27068:67;27132:2;27127:3;27068:67;:::i;:::-;27061:74;;27144:93;27233:3;27144:93;:::i;:::-;27262:2;27257:3;27253:12;27246:19;;26905:366;;;:::o;27277:419::-;27443:4;27481:2;27470:9;27466:18;27458:26;;27530:9;27524:4;27520:20;27516:1;27505:9;27501:17;27494:47;27558:131;27684:4;27558:131;:::i;:::-;27550:139;;27277:419;;;:::o;27702:85::-;27747:7;27776:5;27765:16;;27702:85;;;:::o;27793:158::-;27851:9;27884:61;27902:42;27911:32;27937:5;27911:32;:::i;:::-;27902:42;:::i;:::-;27884:61;:::i;:::-;27871:74;;27793:158;;;:::o;27957:147::-;28052:45;28091:5;28052:45;:::i;:::-;28047:3;28040:58;27957:147;;:::o;28110:114::-;28177:6;28211:5;28205:12;28195:22;;28110:114;;;:::o;28230:184::-;28329:11;28363:6;28358:3;28351:19;28403:4;28398:3;28394:14;28379:29;;28230:184;;;;:::o;28420:132::-;28487:4;28510:3;28502:11;;28540:4;28535:3;28531:14;28523:22;;28420:132;;;:::o;28558:108::-;28635:24;28653:5;28635:24;:::i;:::-;28630:3;28623:37;28558:108;;:::o;28672:179::-;28741:10;28762:46;28804:3;28796:6;28762:46;:::i;:::-;28840:4;28835:3;28831:14;28817:28;;28672:179;;;;:::o;28857:113::-;28927:4;28959;28954:3;28950:14;28942:22;;28857:113;;;:::o;29006:732::-;29125:3;29154:54;29202:5;29154:54;:::i;:::-;29224:86;29303:6;29298:3;29224:86;:::i;:::-;29217:93;;29334:56;29384:5;29334:56;:::i;:::-;29413:7;29444:1;29429:284;29454:6;29451:1;29448:13;29429:284;;;29530:6;29524:13;29557:63;29616:3;29601:13;29557:63;:::i;:::-;29550:70;;29643:60;29696:6;29643:60;:::i;:::-;29633:70;;29489:224;29476:1;29473;29469:9;29464:14;;29429:284;;;29433:14;29729:3;29722:10;;29130:608;;;29006:732;;;;:::o;29744:831::-;30007:4;30045:3;30034:9;30030:19;30022:27;;30059:71;30127:1;30116:9;30112:17;30103:6;30059:71;:::i;:::-;30140:80;30216:2;30205:9;30201:18;30192:6;30140:80;:::i;:::-;30267:9;30261:4;30257:20;30252:2;30241:9;30237:18;30230:48;30295:108;30398:4;30389:6;30295:108;:::i;:::-;30287:116;;30413:72;30481:2;30470:9;30466:18;30457:6;30413:72;:::i;:::-;30495:73;30563:3;30552:9;30548:19;30539:6;30495:73;:::i;:::-;29744:831;;;;;;;;:::o;30581:180::-;30629:77;30626:1;30619:88;30726:4;30723:1;30716:15;30750:4;30747:1;30740:15;30767:185;30807:1;30824:20;30842:1;30824:20;:::i;:::-;30819:25;;30858:20;30876:1;30858:20;:::i;:::-;30853:25;;30897:1;30887:35;;30902:18;;:::i;:::-;30887:35;30944:1;30941;30937:9;30932:14;;30767:185;;;;:::o;30958:177::-;31098:29;31094:1;31086:6;31082:14;31075:53;30958:177;:::o;31141:366::-;31283:3;31304:67;31368:2;31363:3;31304:67;:::i;:::-;31297:74;;31380:93;31469:3;31380:93;:::i;:::-;31498:2;31493:3;31489:12;31482:19;;31141:366;;;:::o;31513:419::-;31679:4;31717:2;31706:9;31702:18;31694:26;;31766:9;31760:4;31756:20;31752:1;31741:9;31737:17;31730:47;31794:131;31920:4;31794:131;:::i;:::-;31786:139;;31513:419;;;:::o;31938:348::-;31978:7;32001:20;32019:1;32001:20;:::i;:::-;31996:25;;32035:20;32053:1;32035:20;:::i;:::-;32030:25;;32223:1;32155:66;32151:74;32148:1;32145:81;32140:1;32133:9;32126:17;32122:105;32119:131;;;32230:18;;:::i;:::-;32119:131;32278:1;32275;32271:9;32260:20;;31938:348;;;;:::o;32292:220::-;32432:34;32428:1;32420:6;32416:14;32409:58;32501:3;32496:2;32488:6;32484:15;32477:28;32292:220;:::o;32518:366::-;32660:3;32681:67;32745:2;32740:3;32681:67;:::i;:::-;32674:74;;32757:93;32846:3;32757:93;:::i;:::-;32875:2;32870:3;32866:12;32859:19;;32518:366;;;:::o;32890:419::-;33056:4;33094:2;33083:9;33079:18;33071:26;;33143:9;33137:4;33133:20;33129:1;33118:9;33114:17;33107:47;33171:131;33297:4;33171:131;:::i;:::-;33163:139;;32890:419;;;:::o
Swarm Source
ipfs://4ad6b953789cf352f81b47919762d4105b781fca967e55b13e6e975d9c1642fc
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.