Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
666,666,666 HIDDEN
Holders
23
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000472 HIDDENValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TheAncientRule
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-11 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; 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 TheAncientRule is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "The Ancient Rule"; string private constant _symbol = "HIDDEN"; 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 = 666666666 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 5; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 5; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x02D6218d528d657c4562103e7A7366001d469F8F); address payable private _marketingAddress = payable(0x02D6218d528d657c4562103e7A7366001d469F8F); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = true; bool private swapEnabled = true; uint256 public _maxTxAmount = 666666666 * 10**9; uint256 public _maxWalletSize = 13333333 * 10**9; uint256 public _swapTokensAtAmount = 1333333 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _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()) { //Trade start check 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; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } 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 blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(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); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public 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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","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":"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":"unblockBot","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
608060405267094079ccf28624006000196200001c91906200075b565b6000196200002b9190620007c2565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f557302d6218d528d657c4562103e7a7366001d469f8f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507302d6218d528d657c4562103e7a7366001d469f8f601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555067094079ccf2862400601655662f5e98812312006017556604bca8c7d512006018553480156200018357600080fd5b50600062000196620006f160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032a57600080fd5b505afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000365919062000867565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c857600080fd5b505afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000867565b6040518363ffffffff1660e01b815260040162000422929190620008aa565b602060405180830381600087803b1580156200043d57600080fd5b505af115801562000452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000478919062000867565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ce620006f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67094079ccf2862400604051620006e29190620008e8565b60405180910390a35062000905565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007688262000722565b9150620007758362000722565b9250826200078857620007876200072c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007cf8262000722565b9150620007dc8362000722565b925082821015620007f257620007f162000793565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082f8262000802565b9050919050565b620008418162000822565b81146200084d57600080fd5b50565b600081519050620008618162000836565b92915050565b60006020828403121562000880576200087f620007fd565b5b6000620008908482850162000850565b91505092915050565b620008a48162000822565b82525050565b6000604082019050620008c1600083018562000899565b620008d0602083018462000899565b9392505050565b620008e28162000722565b82525050565b6000602082019050620008ff6000830184620008d7565b92915050565b613bbb80620009156000396000f3fe6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280601081526020017f54686520416e6369656e742052756c6500000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067094079ccf2862400905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f48494444454e0000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067094079ccf286240090506125b467094079ccf286240060065461231490919063ffffffff16565b8210156125d25760065467094079ccf28624009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f6285541baee5dea2299decf54dc23a109a42574df96bcf4a3cc38167ff33e264736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280601081526020017f54686520416e6369656e742052756c6500000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067094079ccf2862400905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f48494444454e0000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067094079ccf286240090506125b467094079ccf286240060065461231490919063ffffffff16565b8210156125d25760065467094079ccf28624009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f6285541baee5dea2299decf54dc23a109a42574df96bcf4a3cc38167ff33e264736f6c63430008090033
Deployed Bytecode Sourcemap
4068:13069:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12756:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6584:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7509:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5424:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6861:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7710:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5730:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6770:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12933:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16666:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12513:235;;;;;;;;;;;;;:::i;:::-;;6964:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1555:148;;;;;;;;;;;;;:::i;:::-;;5621:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5166:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1341:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12160:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5675:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6675:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16475:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7110:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5128:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12269:236;;;;;;;;;;;;;:::i;:::-;;16898:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7317:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16775:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1711:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12756:169;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12832:9:::1;12827:91;12851:5;:12;12847:1;:16;12827:91;;;12902:4;12885;:14;12890:5;12896:1;12890:8;;;;;;;;:::i;:::-;;;;;;;;12885:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12865:3;;;;;:::i;:::-;;;;12827:91;;;;12756:169:::0;:::o;6584:83::-;6621:13;6654:5;;;;;;;;;;;;;;;;;6647:12;;6584:83;:::o;7509:193::-;7611:4;7633:39;7642:12;:10;:12::i;:::-;7656:7;7665:6;7633:8;:39::i;:::-;7690:4;7683:11;;7509:193;;;;:::o;5424:41::-;;;;;;;;;;;;;:::o;6861:95::-;6914:7;4631:17;6934:14;;6861:95;:::o;7710:446::-;7842:4;7859:36;7869:6;7877:9;7888:6;7859:9;:36::i;:::-;7906:220;7929:6;7950:12;:10;:12::i;:::-;7977:138;8033:6;7977:138;;;;;;;;;;;;;;;;;:11;:19;7989:6;7977:19;;;;;;;;;;;;;;;:33;7997:12;:10;:12::i;:::-;7977:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7906:8;:220::i;:::-;8144:4;8137:11;;7710:446;;;;;:::o;5730:52::-;;;;:::o;6770:83::-;6811:5;4305:1;6829:16;;6770:83;:::o;5472:28::-;;;;;;;;;;;;;:::o;12933:92::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13012:5:::1;12997:4;:12;13002:6;12997:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12933:92:::0;:::o;16666:101::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16747:12:::1;16733:11;;:26;;;;;;;;;;;;;;;;;;16666:101:::0;:::o;12513:235::-;12579:19;;;;;;;;;;;12563:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12618:17;;;;;;;;;;;12602:33;;:12;:10;:12::i;:::-;:33;;;12563:72;12555:81;;;;;;12647:26;12676:21;12647:50;;12708:32;12721:18;12708:12;:32::i;:::-;12544:204;12513:235::o;6964:138::-;7030:7;7057:37;7077:7;:16;7085:7;7077:16;;;;;;;;;;;;;;;;7057:19;:37::i;:::-;7050:44;;6964:138;;;:::o;1555:148::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1662:1:::1;1625:40;;1646:6;::::0;::::1;;;;;;;;1625:40;;;;;;;;;;;;1693:1;1676:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1555:148::o:0;5621:47::-;;;;:::o;5166:43::-;;;;;;;;;;;;;;;;;:::o;1341:79::-;1379:7;1406:6;;;;;;;;;;;1399:13;;1341:79;:::o;12160:101::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12241:12:::1;12227:11;;:26;;;;;;;;;;;;;;;;;;12160:101:::0;:::o;5675:48::-;;;;:::o;6675:87::-;6714:13;6747:7;;;;;;;;;;;;;;;;;6740:14;;6675:87;:::o;16475:139::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16588:18:::1;16566:19;:40;;;;16475:139:::0;:::o;7110:199::-;7215:4;7237:42;7247:12;:10;:12::i;:::-;7261:9;7272:6;7237:9;:42::i;:::-;7297:4;7290:11;;7110:199;;;;:::o;5128:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12269:236::-;12335:19;;;;;;;;;;;12319:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12374:17;;;;;;;;;;;12358:33;;:12;:10;:12::i;:::-;:33;;;12319:72;12311:81;;;;;;12403:23;12429:24;12447:4;12429:9;:24::i;:::-;12403:50;;12464:33;12481:15;12464:16;:33::i;:::-;12300:205;12269:236::o;16898:234::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17015:9:::1;17011:114;17034:8;;:15;;17030:1;:19;17011:114;;;17105:8;17071:18;:31;17090:8;;17099:1;17090:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17071:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17051:3;;;;;:::i;:::-;;;;17011:114;;;;16898:234:::0;;;:::o;7317:184::-;7434:7;7466:11;:18;7478:5;7466:18;;;;;;;;;;;;;;;:27;7485:7;7466:27;;;;;;;;;;;;;;;;7459:34;;7317:184;;;;:::o;16775:115::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16869:13:::1;16852:14;:30;;;;16775:115:::0;:::o;1711:244::-;1478:12;:10;:12::i;:::-;1468:22;;:6;;;;;;;;;;:22;;;1460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1:::1;1800:22;;:8;:22;;;;1792:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1910:8;1881:38;;1902:6;::::0;::::1;;;;;;;;1881:38;;;;;;;;;;;;1939:8;1930:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1711:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;8847:369::-;8991:1;8974:19;;:5;:19;;;;8966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9072:1;9053:21;;:7;:21;;;;9045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9154:6;9124:11;:18;9136:5;9124:18;;;;;;;;;;;;;;;:27;9143:7;9124:27;;;;;;;;;;;;;;;:36;;;;9192:7;9176:32;;9185:5;9176:32;;;9201:6;9176:32;;;;;;:::i;:::-;;;;;;;;8847:369;;;:::o;9224:2330::-;9362:1;9346:18;;:4;:18;;;;9338:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9439:1;9425:16;;:2;:16;;;;9417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9509:1;9500:6;:10;9492:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9581:7;:5;:7::i;:::-;9573:15;;:4;:15;;;;:32;;;;;9598:7;:5;:7::i;:::-;9592:13;;:2;:13;;;;9573:32;9569:1259;;;9662:11;;;;;;;;;;;9657:144;;9710:7;:5;:7::i;:::-;9702:15;;:4;:15;;;9694:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9657:144;9835:12;;9825:6;:22;;9817:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9904:4;:10;9909:4;9904:10;;;;;;;;;;;;;;;;;;;;;;;;;9903:11;:24;;;;;9919:4;:8;9924:2;9919:8;;;;;;;;;;;;;;;;;;;;;;;;;9918:9;9903:24;9895:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9993:13;;;;;;;;;;;9987:19;;:2;:19;;;9984:146;;10060:14;;10051:6;10035:13;10045:2;10035:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10027:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:146;10146:28;10177:24;10195:4;10177:9;:24::i;:::-;10146:55;;10216:12;10255:19;;10231:20;:43;;10216:58;;10318:12;;10294:20;:36;10291:124;;10387:12;;10364:35;;10291:124;10435:7;:18;;;;;10447:6;;;;;;;;;;10446:7;10435:18;:43;;;;;10465:13;;;;;;;;;;;10457:21;;:4;:21;;;;10435:43;:58;;;;;10482:11;;;;;;;;;;;10435:58;:87;;;;;10498:18;:24;10517:4;10498:24;;;;;;;;;;;;;;;;;;;;;;;;;10497:25;10435:87;:114;;;;;10527:18;:22;10546:2;10527:22;;;;;;;;;;;;;;;;;;;;;;;;;10526:23;10435:114;10431:386;;;10570:38;10587:20;10570:16;:38::i;:::-;10627:26;10656:21;10627:50;;10721:1;10700:18;:22;10696:106;;;10747:35;10760:21;10747:12;:35::i;:::-;10696:106;10551:266;10431:386;9607:1221;;9569:1259;10840:12;10855:4;10840:19;;10904:18;:24;10923:4;10904:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10932:18;:22;10951:2;10932:22;;;;;;;;;;;;;;;;;;;;;;;;;10904:50;10903:102;;;;10968:13;;;;;;;;;;;10960:21;;:4;:21;;;;:44;;;;;10991:13;;;;;;;;;;;10985:19;;:2;:19;;;;10960:44;10903:102;10899:594;;;11032:5;11022:15;;10899:594;;;11115:13;;;;;;;;;;;11107:21;;:4;:21;;;:55;;;;;11146:15;;;;;;;;;;;11132:30;;:2;:30;;;;11107:55;11104:162;;;11195:14;;11183:9;:26;;;;11238:12;;11228:7;:22;;;;11104:162;11325:13;;;;;;;;;;;11319:19;;:2;:19;;;:55;;;;;11358:15;;;;;;;;;;;11342:32;;:4;:32;;;;11319:55;11315:165;;;11407:15;;11395:9;:27;;;;11451:13;;11441:7;:23;;;;11315:165;10899:594;11505:41;11520:4;11526:2;11530:6;11538:7;11505:14;:41::i;:::-;9327:2227;9224:2330;;;:::o;2319:224::-;2439:7;2472:1;2467;:6;;2475:12;2459:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2499:9;2515:1;2511;:5;;;;:::i;:::-;2499:17;;2534:1;2527:8;;;2319:224;;;;;:::o;12053:99::-;12110:17;;;;;;;;;;;:26;;:34;12137:6;12110:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12053:99;:::o;8164:323::-;8259:7;8317;;8306;:18;;8284:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8405:19;8427:10;:8;:10::i;:::-;8405:32;;8455:24;8467:11;8455:7;:11;;:24;;;;:::i;:::-;8448:31;;;8164:323;;;:::o;11562:483::-;5885:4;5876:6;;:13;;;;;;;;;;;;;;;;;;11640:21:::1;11678:1;11664:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11640:40;;11709:4;11691;11696:1;11691:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11735:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11725:4;11730:1;11725:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11768:62;11785:4;11800:15;;;;;;;;;;;11818:11;11768:8;:62::i;:::-;11841:15;;;;;;;;;;;:66;;;11922:11;11948:1;11964:4;11991;12011:15;11841:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11629:416;5921:5:::0;5912:6;;:14;;;;;;;;;;;;;;;;;;11562:483;:::o;13033:282::-;13189:7;13184:28;;13198:14;:12;:14::i;:::-;13184:28;13223:44;13241:6;13249:9;13260:6;13223:17;:44::i;:::-;13283:7;13278:29;;13292:15;:13;:15::i;:::-;13278:29;13033:282;;;;:::o;15994:164::-;16036:7;16057:15;16074;16093:19;:17;:19::i;:::-;16056:56;;;;16130:20;16142:7;16130;:11;;:20;;;;:::i;:::-;16123:27;;;;15994:164;:::o;2805:132::-;2863:7;2890:39;2894:1;2897;2890:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2883:46;;2805:132;;;;:::o;8495:219::-;8555:1;8542:9;;:14;:30;;;;;8571:1;8560:7;;:12;8542:30;8538:43;;;8574:7;;8538:43;8613:9;;8593:17;:29;;;;8651:7;;8633:15;:25;;;;8683:1;8671:9;:13;;;;8705:1;8695:7;:11;;;;8495:219;:::o;13323:610::-;13470:15;13500:23;13538:12;13565:23;13603:12;13630:13;13657:19;13668:7;13657:10;:19::i;:::-;13455:221;;;;;;;;;;;;13705:28;13725:7;13705;:15;13713:6;13705:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13687:7;:15;13695:6;13687:15;;;;;;;;;;;;;;;:46;;;;13765:39;13788:15;13765:7;:18;13773:9;13765:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13744:7;:18;13752:9;13744:18;;;;;;;;;;;;;;;:60;;;;13815:16;13825:5;13815:9;:16::i;:::-;13842:23;13854:4;13860;13842:11;:23::i;:::-;13898:9;13881:44;;13890:6;13881:44;;;13909:15;13881:44;;;;;;:::i;:::-;;;;;;;;13444:489;;;;;;13323:610;;;:::o;8722:117::-;8778:17;;8766:9;:29;;;;8816:15;;8806:7;:25;;;;8722:117::o;16166:257::-;16217:7;16226;16246:15;16264:7;;16246:25;;16282:15;4631:17;16282:25;;16332:20;4631:17;16332:7;;:11;;:20;;;;:::i;:::-;16322:7;:30;16318:61;;;16362:7;;4631:17;16354:25;;;;;;;;16318:61;16398:7;16407;16390:25;;;;;;16166:257;;;:::o;2945:223::-;3065:7;3097:1;3093;:5;3100:12;3085:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3124:9;3140:1;3136;:5;;;;:::i;:::-;3124:17;;3159:1;3152:8;;;2945:223;;;;;:::o;14352:615::-;14452:7;14474;14496;14518;14540;14562;14598:23;14623:12;14637:13;14667:40;14679:7;14688:9;;14699:7;;14667:11;:40::i;:::-;14597:110;;;;;;14718:19;14740:10;:8;:10::i;:::-;14718:32;;14762:15;14779:23;14804:12;14833:46;14845:7;14854:4;14860:5;14867:11;14833;:46::i;:::-;14761:118;;;;;;14898:7;14907:15;14924:4;14930:15;14947:4;14953:5;14890:69;;;;;;;;;;;;;;;;;;;14352:615;;;;;;;:::o;2175:136::-;2233:7;2260:43;2264:1;2267;2260:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2253:50;;2175:136;;;;:::o;1988:179::-;2046:7;2066:9;2082:1;2078;:5;;;;:::i;:::-;2066:17;;2107:1;2102;:6;;2094:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2158:1;2151:8;;;1988:179;;;;:::o;13941:211::-;13994:19;14016:10;:8;:10::i;:::-;13994:32;;14037:13;14053:22;14063:11;14053:5;:9;;:22;;;;:::i;:::-;14037:38;;14111:33;14138:5;14111:7;:22;14127:4;14111:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14086:7;:22;14102:4;14086:22;;;;;;;;;;;;;;;:58;;;;13983:169;;13941:211;:::o;14160:147::-;14238:17;14250:4;14238:7;;:11;;:17;;;;:::i;:::-;14228:7;:27;;;;14279:20;14294:4;14279:10;;:14;;:20;;;;:::i;:::-;14266:10;:33;;;;14160:147;;:::o;14975:469::-;15144:7;15166;15188;15223:12;15238:30;15264:3;15238:21;15250:8;15238:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15223:45;;15279:13;15295:28;15319:3;15295:19;15307:6;15295:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15279:44;;15334:23;15360:28;15382:5;15360:17;15372:4;15360:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15334:54;;15407:15;15424:4;15430:5;15399:37;;;;;;;;;14975:469;;;;;;;:::o;15452:534::-;15646:7;15668;15690;15725:15;15743:24;15755:11;15743:7;:11;;:24;;;;:::i;:::-;15725:42;;15778:12;15793:21;15802:11;15793:4;:8;;:21;;;;:::i;:::-;15778:36;;15825:13;15841:22;15851:11;15841:5;:9;;:22;;;;:::i;:::-;15825:38;;15874:23;15900:28;15922:5;15900:17;15912:4;15900:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15874:54;;15947:7;15956:15;15973:4;15939:39;;;;;;;;;;15452:534;;;;;;;;:::o;2551:246::-;2609:7;2638:1;2633;:6;2629:47;;;2663:1;2656:8;;;;2629:47;2686:9;2702:1;2698;:5;;;;:::i;:::-;2686:17;;2731:1;2726;2722;:5;;;;:::i;:::-;:10;2714:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2788:1;2781:8;;;2551:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:117::-;10437:1;10434;10427:12;10468:568;10541:8;10551:6;10601:3;10594:4;10586:6;10582:17;10578:27;10568:122;;10609:79;;:::i;:::-;10568:122;10722:6;10709:20;10699:30;;10752:18;10744:6;10741:30;10738:117;;;10774:79;;:::i;:::-;10738:117;10888:4;10880:6;10876:17;10864:29;;10942:3;10934:4;10926:6;10922:17;10912:8;10908:32;10905:41;10902:128;;;10949:79;;:::i;:::-;10902:128;10468:568;;;;;:::o;11042:698::-;11134:6;11142;11150;11199:2;11187:9;11178:7;11174:23;11170:32;11167:119;;;11205:79;;:::i;:::-;11167:119;11353:1;11342:9;11338:17;11325:31;11383:18;11375:6;11372:30;11369:117;;;11405:79;;:::i;:::-;11369:117;11518:80;11590:7;11581:6;11570:9;11566:22;11518:80;:::i;:::-;11500:98;;;;11296:312;11647:2;11673:50;11715:7;11706:6;11695:9;11691:22;11673:50;:::i;:::-;11663:60;;11618:115;11042:698;;;;;:::o;11746:474::-;11814:6;11822;11871:2;11859:9;11850:7;11846:23;11842:32;11839:119;;;11877:79;;:::i;:::-;11839:119;11997:1;12022:53;12067:7;12058:6;12047:9;12043:22;12022:53;:::i;:::-;12012:63;;11968:117;12124:2;12150:53;12195:7;12186:6;12175:9;12171:22;12150:53;:::i;:::-;12140:63;;12095:118;11746:474;;;;;:::o;12226:182::-;12366:34;12362:1;12354:6;12350:14;12343:58;12226:182;:::o;12414:366::-;12556:3;12577:67;12641:2;12636:3;12577:67;:::i;:::-;12570:74;;12653:93;12742:3;12653:93;:::i;:::-;12771:2;12766:3;12762:12;12755:19;;12414:366;;;:::o;12786:419::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12786:419;;;:::o;13211:180::-;13259:77;13256:1;13249:88;13356:4;13353:1;13346:15;13380:4;13377:1;13370:15;13397:180;13445:77;13442:1;13435:88;13542:4;13539:1;13532:15;13566:4;13563:1;13556:15;13583:233;13622:3;13645:24;13663:5;13645:24;:::i;:::-;13636:33;;13691:66;13684:5;13681:77;13678:103;;;13761:18;;:::i;:::-;13678:103;13808:1;13801:5;13797:13;13790:20;;13583:233;;;:::o;13822:225::-;13962:34;13958:1;13950:6;13946:14;13939:58;14031:8;14026:2;14018:6;14014:15;14007:33;13822:225;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:223::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:6;15054:2;15046:6;15042:15;15035:31;14850:223;:::o;15079:366::-;15221:3;15242:67;15306:2;15301:3;15242:67;:::i;:::-;15235:74;;15318:93;15407:3;15318:93;:::i;:::-;15436:2;15431:3;15427:12;15420:19;;15079:366;;;:::o;15451:419::-;15617:4;15655:2;15644:9;15640:18;15632:26;;15704:9;15698:4;15694:20;15690:1;15679:9;15675:17;15668:47;15732:131;15858:4;15732:131;:::i;:::-;15724:139;;15451:419;;;:::o;15876:221::-;16016:34;16012:1;16004:6;16000:14;15993:58;16085:4;16080:2;16072:6;16068:15;16061:29;15876:221;:::o;16103:366::-;16245:3;16266:67;16330:2;16325:3;16266:67;:::i;:::-;16259:74;;16342:93;16431:3;16342:93;:::i;:::-;16460:2;16455:3;16451:12;16444:19;;16103:366;;;:::o;16475:419::-;16641:4;16679:2;16668:9;16664:18;16656:26;;16728:9;16722:4;16718:20;16714:1;16703:9;16699:17;16692:47;16756:131;16882:4;16756:131;:::i;:::-;16748:139;;16475:419;;;:::o;16900:224::-;17040:34;17036:1;17028:6;17024:14;17017:58;17109:7;17104:2;17096:6;17092:15;17085:32;16900:224;:::o;17130:366::-;17272:3;17293:67;17357:2;17352:3;17293:67;:::i;:::-;17286:74;;17369:93;17458:3;17369:93;:::i;:::-;17487:2;17482:3;17478:12;17471:19;;17130:366;;;:::o;17502:419::-;17668:4;17706:2;17695:9;17691:18;17683:26;;17755:9;17749:4;17745:20;17741:1;17730:9;17726:17;17719:47;17783:131;17909:4;17783:131;:::i;:::-;17775:139;;17502:419;;;:::o;17927:222::-;18067:34;18063:1;18055:6;18051:14;18044:58;18136:5;18131:2;18123:6;18119:15;18112:30;17927:222;:::o;18155:366::-;18297:3;18318:67;18382:2;18377:3;18318:67;:::i;:::-;18311:74;;18394:93;18483:3;18394:93;:::i;:::-;18512:2;18507:3;18503:12;18496:19;;18155:366;;;:::o;18527:419::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:228::-;19092:34;19088:1;19080:6;19076:14;19069:58;19161:11;19156:2;19148:6;19144:15;19137:36;18952:228;:::o;19186:366::-;19328:3;19349:67;19413:2;19408:3;19349:67;:::i;:::-;19342:74;;19425:93;19514:3;19425:93;:::i;:::-;19543:2;19538:3;19534:12;19527:19;;19186:366;;;:::o;19558:419::-;19724:4;19762:2;19751:9;19747:18;19739:26;;19811:9;19805:4;19801:20;19797:1;19786:9;19782:17;19775:47;19839:131;19965:4;19839:131;:::i;:::-;19831:139;;19558:419;;;:::o;19983:250::-;20123:34;20119:1;20111:6;20107:14;20100:58;20192:33;20187:2;20179:6;20175:15;20168:58;19983:250;:::o;20239:366::-;20381:3;20402:67;20466:2;20461:3;20402:67;:::i;:::-;20395:74;;20478:93;20567:3;20478:93;:::i;:::-;20596:2;20591:3;20587:12;20580:19;;20239:366;;;:::o;20611:419::-;20777:4;20815:2;20804:9;20800:18;20792:26;;20864:9;20858:4;20854:20;20850:1;20839:9;20835:17;20828:47;20892:131;21018:4;20892:131;:::i;:::-;20884:139;;20611:419;;;:::o;21036:178::-;21176:30;21172:1;21164:6;21160:14;21153:54;21036:178;:::o;21220:366::-;21362:3;21383:67;21447:2;21442:3;21383:67;:::i;:::-;21376:74;;21459:93;21548:3;21459:93;:::i;:::-;21577:2;21572:3;21568:12;21561:19;;21220:366;;;:::o;21592:419::-;21758:4;21796:2;21785:9;21781:18;21773:26;;21845:9;21839:4;21835:20;21831:1;21820:9;21816:17;21809:47;21873:131;21999:4;21873:131;:::i;:::-;21865:139;;21592:419;;;:::o;22017:222::-;22157:34;22153:1;22145:6;22141:14;22134:58;22226:5;22221:2;22213:6;22209:15;22202:30;22017:222;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:305::-;23082:3;23101:20;23119:1;23101:20;:::i;:::-;23096:25;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23289:1;23221:66;23217:74;23214:1;23211:81;23208:107;;;23295:18;;:::i;:::-;23208:107;23339:1;23336;23332:9;23325:16;;23042:305;;;;:::o;23353:222::-;23493:34;23489:1;23481:6;23477:14;23470:58;23562:5;23557:2;23549:6;23545:15;23538:30;23353:222;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:191::-;24418:4;24438:20;24456:1;24438:20;:::i;:::-;24433:25;;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24511:1;24508;24505:8;24502:34;;;24516:18;;:::i;:::-;24502:34;24561:1;24558;24554:9;24546:17;;24378:191;;;;:::o;24575:229::-;24715:34;24711:1;24703:6;24699:14;24692:58;24784:12;24779:2;24771:6;24767:15;24760:37;24575:229;:::o;24810:366::-;24952:3;24973:67;25037:2;25032:3;24973:67;:::i;:::-;24966:74;;25049:93;25138:3;25049:93;:::i;:::-;25167:2;25162:3;25158:12;25151:19;;24810:366;;;:::o;25182:419::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25435:9;25429:4;25425:20;25421:1;25410:9;25406:17;25399:47;25463:131;25589:4;25463:131;:::i;:::-;25455:139;;25182:419;;;:::o;25607:143::-;25664:5;25695:6;25689:13;25680:22;;25711:33;25738:5;25711:33;:::i;:::-;25607:143;;;;:::o;25756:351::-;25826:6;25875:2;25863:9;25854:7;25850:23;25846:32;25843:119;;;25881:79;;:::i;:::-;25843:119;26001:1;26026:64;26082:7;26073:6;26062:9;26058:22;26026:64;:::i;:::-;26016:74;;25972:128;25756:351;;;;:::o;26113:85::-;26158:7;26187:5;26176:16;;26113:85;;;:::o;26204:158::-;26262:9;26295:61;26313:42;26322:32;26348:5;26322:32;:::i;:::-;26313:42;:::i;:::-;26295:61;:::i;:::-;26282:74;;26204:158;;;:::o;26368:147::-;26463:45;26502:5;26463:45;:::i;:::-;26458:3;26451:58;26368:147;;:::o;26521:114::-;26588:6;26622:5;26616:12;26606:22;;26521:114;;;:::o;26641:184::-;26740:11;26774:6;26769:3;26762:19;26814:4;26809:3;26805:14;26790:29;;26641:184;;;;:::o;26831:132::-;26898:4;26921:3;26913:11;;26951:4;26946:3;26942:14;26934:22;;26831:132;;;:::o;26969:108::-;27046:24;27064:5;27046:24;:::i;:::-;27041:3;27034:37;26969:108;;:::o;27083:179::-;27152:10;27173:46;27215:3;27207:6;27173:46;:::i;:::-;27251:4;27246:3;27242:14;27228:28;;27083:179;;;;:::o;27268:113::-;27338:4;27370;27365:3;27361:14;27353:22;;27268:113;;;:::o;27417:732::-;27536:3;27565:54;27613:5;27565:54;:::i;:::-;27635:86;27714:6;27709:3;27635:86;:::i;:::-;27628:93;;27745:56;27795:5;27745:56;:::i;:::-;27824:7;27855:1;27840:284;27865:6;27862:1;27859:13;27840:284;;;27941:6;27935:13;27968:63;28027:3;28012:13;27968:63;:::i;:::-;27961:70;;28054:60;28107:6;28054:60;:::i;:::-;28044:70;;27900:224;27887:1;27884;27880:9;27875:14;;27840:284;;;27844:14;28140:3;28133:10;;27541:608;;;27417:732;;;;:::o;28155:831::-;28418:4;28456:3;28445:9;28441:19;28433:27;;28470:71;28538:1;28527:9;28523:17;28514:6;28470:71;:::i;:::-;28551:80;28627:2;28616:9;28612:18;28603:6;28551:80;:::i;:::-;28678:9;28672:4;28668:20;28663:2;28652:9;28648:18;28641:48;28706:108;28809:4;28800:6;28706:108;:::i;:::-;28698:116;;28824:72;28892:2;28881:9;28877:18;28868:6;28824:72;:::i;:::-;28906:73;28974:3;28963:9;28959:19;28950:6;28906:73;:::i;:::-;28155:831;;;;;;;;:::o;28992:180::-;29040:77;29037:1;29030:88;29137:4;29134:1;29127:15;29161:4;29158:1;29151:15;29178:185;29218:1;29235:20;29253:1;29235:20;:::i;:::-;29230:25;;29269:20;29287:1;29269:20;:::i;:::-;29264:25;;29308:1;29298:35;;29313:18;;:::i;:::-;29298:35;29355:1;29352;29348:9;29343:14;;29178:185;;;;:::o;29369:177::-;29509:29;29505:1;29497:6;29493:14;29486:53;29369:177;:::o;29552:366::-;29694:3;29715:67;29779:2;29774:3;29715:67;:::i;:::-;29708:74;;29791:93;29880:3;29791:93;:::i;:::-;29909:2;29904:3;29900:12;29893:19;;29552:366;;;:::o;29924:419::-;30090:4;30128:2;30117:9;30113:18;30105:26;;30177:9;30171:4;30167:20;30163:1;30152:9;30148:17;30141:47;30205:131;30331:4;30205:131;:::i;:::-;30197:139;;29924:419;;;:::o;30349:348::-;30389:7;30412:20;30430:1;30412:20;:::i;:::-;30407:25;;30446:20;30464:1;30446:20;:::i;:::-;30441:25;;30634:1;30566:66;30562:74;30559:1;30556:81;30551:1;30544:9;30537:17;30533:105;30530:131;;;30641:18;;:::i;:::-;30530:131;30689:1;30686;30682:9;30671:20;;30349:348;;;;:::o;30703:220::-;30843:34;30839:1;30831:6;30827:14;30820:58;30912:3;30907:2;30899:6;30895:15;30888:28;30703:220;:::o;30929:366::-;31071:3;31092:67;31156:2;31151:3;31092:67;:::i;:::-;31085:74;;31168:93;31257:3;31168:93;:::i;:::-;31286:2;31281:3;31277:12;31270:19;;30929:366;;;:::o;31301:419::-;31467:4;31505:2;31494:9;31490:18;31482:26;;31554:9;31548:4;31544:20;31540:1;31529:9;31525:17;31518:47;31582:131;31708:4;31582:131;:::i;:::-;31574:139;;31301:419;;;:::o
Swarm Source
ipfs://9f6285541baee5dea2299decf54dc23a109a42574df96bcf4a3cc38167ff33e2
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.