ERC-20
Overview
Max Total Supply
1,000,000,000 BORDI
Holders
33
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BORDI
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-05 */ // SPDX-License-Identifier: Unlicensed // Website: https://bordi.io // Telegram: https://t.me/botordinal // Twitter: https://twitter.com/botordinal pragma solidity ^0.8.22; 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 BORDI is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "BOT ORDINAL"; string private constant _symbol = "BORDI"; 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 = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 22; //Sell Fee uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 24; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xf9e55d4A39DD75B95696FC6c79ADDDC864a6378c); address payable private _marketingAddress = payable(0x332460E16Cb8Bae724e23c494F27aAFe27574094); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 15000000 * 10**9; uint256 public _maxWalletSize = 15000000 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 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"); 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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } 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 _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues( tAmount, _redisFee, _taxFee ); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues( tAmount, tFee, tTeam, currentRate ); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee( uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell ) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set Max Transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } //Set Max Wallet function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":[],"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":[],"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
6080604052670de0b6b3a76400005f196200001b9190620006e2565b5f1962000029919062000746565b6006555f60085560166009555f600a556018600b55600a54600c55600b54600d55600c54600e55600d54600f5573f9e55d4a39dd75b95696fc6c79adddc864a6378c60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073332460e16cb8bae724e23c494f27aafe2757409460125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555066354a6ba7a1800060155566354a6ba7a1800060165564e8d4a510006017553480156200015e575f80fd5b505f620001706200067e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620002226200067e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000301573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003279190620007e5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b39190620007e5565b6040518363ffffffff1660e01b8152600401620003d292919062000826565b6020604051808303815f875af1158015620003ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004159190620007e5565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004696200068560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006096200067e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200066f919062000862565b60405180910390a3506200087d565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006ee82620006ac565b9150620006fb83620006ac565b9250826200070e576200070d620006b5565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200075282620006ac565b91506200075f83620006ac565b92508282039050818111156200077a576200077962000719565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007af8262000784565b9050919050565b620007c181620007a3565b8114620007cc575f80fd5b50565b5f81519050620007df81620007b6565b92915050565b5f60208284031215620007fd57620007fc62000780565b5b5f6200080c84828501620007cf565b91505092915050565b6200082081620007a3565b82525050565b5f6040820190506200083b5f83018562000815565b6200084a602083018462000815565b9392505050565b6200085c81620006ac565b82525050565b5f602082019050620008775f83018462000851565b92915050565b613244806200088b5f395ff3fe608060405260043610610143575f3560e01c806374010ece116100b5578063a2a957bb1161006e578063a2a957bb14610422578063a9059cbb1461044a578063c3c8cd8014610486578063dd62ed3e1461049c578063ea1644d5146104d8578063f2fde38b146105005761014a565b806374010ece1461032a5780637d1db4a5146103525780638da5cb5b1461037c5780638f70ccf7146103a65780638f9a55c0146103ce57806395d89b41146103f85761014a565b80632fd689e3116101075780632fd689e314610244578063313ce5671461026e57806349bd5a5e146102985780636fc3eaec146102c257806370a08231146102d8578063715018a6146103145761014a565b806306fdde031461014e578063095ea7b3146101785780631694505e146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610528565b60405161016f9190612459565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061250a565b610565565b6040516101ab9190612562565b60405180910390f35b3480156101bf575f80fd5b506101c8610582565b6040516101d591906125d6565b60405180910390f35b3480156101e9575f80fd5b506101f26105a7565b6040516101ff91906125fe565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190612617565b6105b6565b60405161023b9190612562565b60405180910390f35b34801561024f575f80fd5b5061025861068a565b60405161026591906125fe565b60405180910390f35b348015610279575f80fd5b50610282610690565b60405161028f9190612682565b60405180910390f35b3480156102a3575f80fd5b506102ac610698565b6040516102b991906126aa565b60405180910390f35b3480156102cd575f80fd5b506102d66106bd565b005b3480156102e3575f80fd5b506102fe60048036038101906102f991906126c3565b61078a565b60405161030b91906125fe565b60405180910390f35b34801561031f575f80fd5b506103286107d8565b005b348015610335575f80fd5b50610350600480360381019061034b91906126ee565b610926565b005b34801561035d575f80fd5b506103666109c4565b60405161037391906125fe565b60405180910390f35b348015610387575f80fd5b506103906109ca565b60405161039d91906126aa565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612743565b6109f1565b005b3480156103d9575f80fd5b506103e2610aa1565b6040516103ef91906125fe565b60405180910390f35b348015610403575f80fd5b5061040c610aa7565b6040516104199190612459565b60405180910390f35b34801561042d575f80fd5b506104486004803603810190610443919061276e565b610ae4565b005b348015610455575f80fd5b50610470600480360381019061046b919061250a565b610b9a565b60405161047d9190612562565b60405180910390f35b348015610491575f80fd5b5061049a610bb7565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906127d2565b610c8c565b6040516104cf91906125fe565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906126ee565b610d0e565b005b34801561050b575f80fd5b50610526600480360381019061052191906126c3565b610dac565b005b60606040518060400160405280600b81526020017f424f54204f5244494e414c000000000000000000000000000000000000000000815250905090565b5f610578610571610f69565b8484610f70565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6105c2848484611133565b61067f846105ce610f69565b61067a856040518060600160405280602881526020016131e76028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610631610f69565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b69092919063ffffffff16565b610f70565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fd610f69565b73ffffffffffffffffffffffffffffffffffffffff161480610772575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075a610f69565b73ffffffffffffffffffffffffffffffffffffffff16145b61077a575f80fd5b5f47905061078781611918565b50565b5f6107d160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a0b565b9050919050565b6107e0610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639061285a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092e610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061285a565b60405180910390fd5b8060158190555050565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109f9610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c9061285a565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600581526020017f424f524449000000000000000000000000000000000000000000000000000000815250905090565b610aec610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f9061285a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f610bad610ba6610f69565b8484611133565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf7610f69565b73ffffffffffffffffffffffffffffffffffffffff161480610c6c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c54610f69565b73ffffffffffffffffffffffffffffffffffffffff16145b610c74575f80fd5b5f610c7e3061078a565b9050610c8981611a77565b50565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d16610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d999061285a565b60405180910390fd5b8060168190555050565b610db4610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e379061285a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea5906128e8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590612976565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612a04565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161112691906125fe565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890612a92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612b20565b60405180910390fd5b5f8111611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612bae565b60405180910390fd5b6112596109ca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112c757506112976109ca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115c35760148054906101000a900460ff16611354576112e66109ca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612c3c565b60405180910390fd5b5b601554811115611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612ca4565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461144557601654816113fa8461078a565b6114049190612cef565b10611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612d92565b60405180910390fd5b5b5f61144f3061078a565b90505f601754821015905060155482106114695760155491505b8080156114835750601460159054906101000a900460ff16155b80156114dc575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114f45750601460169054906101000a900460ff165b8015611547575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561159a575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115c0576115a882611a77565b5f4790505f8111156115be576115bd47611918565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611663575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611714575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611713575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611721575f90506118a4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ca575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117e257600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561188b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a357600a54600c81905550600b54600d819055505b5b6118b084848484611ce2565b50505050565b5f8383111582906118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f49190612459565b60405180910390fd5b505f838561190b9190612db0565b9050809150509392505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611967600284611d0f90919063ffffffff16565b90811502906040515f60405180830381858888f1935050505015801561198f573d5f803e3d5ffd5b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119df600284611d0f90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611a07573d5f803e3d5ffd5b5050565b5f600654821115611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890612e53565b60405180910390fd5b5f611a5a611d58565b9050611a6f8184611d0f90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611aae57611aad612e71565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b50905030815f81518110611af357611af2612e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bbb9190612edf565b81600181518110611bcf57611bce612e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c353060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f70565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c97959493929190612ffa565b5f604051808303815f87803b158015611cae575f80fd5b505af1158015611cc0573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80611cf057611cef611d81565b5b611cfb848484611dba565b80611d0957611d08611f7a565b5b50505050565b5f611d5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f8e565b905092915050565b5f805f611d63611fef565b91509150611d7a8183611d0f90919063ffffffff16565b9250505090565b5f600c54148015611d9357505f600d54145b611db857600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80611dc98761204b565b955095509550955095509550611e258660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ab90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eb68560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f0081612151565b611f0a8483612208565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f6791906125fe565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f8083118290611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb9190612459565b60405180910390fd5b505f8385611fe2919061307f565b9050809150509392505050565b5f805f60065490505f670de0b6b3a76400009050612020670de0b6b3a7640000600654611d0f90919063ffffffff16565b82101561203e57600654670de0b6b3a7640000935093505050612047565b81819350935050505b9091565b5f805f805f805f805f6120638a600c54600d54612242565b9250925092505f612072611d58565b90505f805f6120838e8787876122d4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6120ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b6565b905092915050565b5f8082846121029190612cef565b905083811015612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906130f9565b60405180910390fd5b8091505092915050565b5f61215a611d58565b90505f612170828461235890919063ffffffff16565b90506121c28160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61221d826006546120ab90919063ffffffff16565b600681905550612238816007546120f490919063ffffffff16565b6007819055505050565b5f805f8061226c606461225e888a61235890919063ffffffff16565b611d0f90919063ffffffff16565b90505f6122956064612287888b61235890919063ffffffff16565b611d0f90919063ffffffff16565b90505f6122bd826122af858c6120ab90919063ffffffff16565b6120ab90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806122eb858961235890919063ffffffff16565b90505f612301868961235890919063ffffffff16565b90505f612317878961235890919063ffffffff16565b90505f61233f8261233185876120ab90919063ffffffff16565b6120ab90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612368575f90506123c9565b5f82846123759190613117565b9050828482612384919061307f565b146123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bb906131c8565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124065780820151818401526020810190506123eb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61242b826123cf565b61243581856123d9565b93506124458185602086016123e9565b61244e81612411565b840191505092915050565b5f6020820190508181035f8301526124718184612421565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a68261247d565b9050919050565b6124b68161249c565b81146124c0575f80fd5b50565b5f813590506124d1816124ad565b92915050565b5f819050919050565b6124e9816124d7565b81146124f3575f80fd5b50565b5f81359050612504816124e0565b92915050565b5f80604083850312156125205761251f612479565b5b5f61252d858286016124c3565b925050602061253e858286016124f6565b9150509250929050565b5f8115159050919050565b61255c81612548565b82525050565b5f6020820190506125755f830184612553565b92915050565b5f819050919050565b5f61259e6125996125948461247d565b61257b565b61247d565b9050919050565b5f6125af82612584565b9050919050565b5f6125c0826125a5565b9050919050565b6125d0816125b6565b82525050565b5f6020820190506125e95f8301846125c7565b92915050565b6125f8816124d7565b82525050565b5f6020820190506126115f8301846125ef565b92915050565b5f805f6060848603121561262e5761262d612479565b5b5f61263b868287016124c3565b935050602061264c868287016124c3565b925050604061265d868287016124f6565b9150509250925092565b5f60ff82169050919050565b61267c81612667565b82525050565b5f6020820190506126955f830184612673565b92915050565b6126a48161249c565b82525050565b5f6020820190506126bd5f83018461269b565b92915050565b5f602082840312156126d8576126d7612479565b5b5f6126e5848285016124c3565b91505092915050565b5f6020828403121561270357612702612479565b5b5f612710848285016124f6565b91505092915050565b61272281612548565b811461272c575f80fd5b50565b5f8135905061273d81612719565b92915050565b5f6020828403121561275857612757612479565b5b5f6127658482850161272f565b91505092915050565b5f805f806080858703121561278657612785612479565b5b5f612793878288016124f6565b94505060206127a4878288016124f6565b93505060406127b5878288016124f6565b92505060606127c6878288016124f6565b91505092959194509250565b5f80604083850312156127e8576127e7612479565b5b5f6127f5858286016124c3565b9250506020612806858286016124c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128446020836123d9565b915061284f82612810565b602082019050919050565b5f6020820190508181035f83015261287181612838565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6128d26026836123d9565b91506128dd82612878565b604082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129606024836123d9565b915061296b82612906565b604082019050919050565b5f6020820190508181035f83015261298d81612954565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ee6022836123d9565b91506129f982612994565b604082019050919050565b5f6020820190508181035f830152612a1b816129e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a7c6025836123d9565b9150612a8782612a22565b604082019050919050565b5f6020820190508181035f830152612aa981612a70565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b0a6023836123d9565b9150612b1582612ab0565b604082019050919050565b5f6020820190508181035f830152612b3781612afe565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b986029836123d9565b9150612ba382612b3e565b604082019050919050565b5f6020820190508181035f830152612bc581612b8c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612c26603f836123d9565b9150612c3182612bcc565b604082019050919050565b5f6020820190508181035f830152612c5381612c1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612c8e601c836123d9565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cf9826124d7565b9150612d04836124d7565b9250828201905080821115612d1c57612d1b612cc2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7c6023836123d9565b9150612d8782612d22565b604082019050919050565b5f6020820190508181035f830152612da981612d70565b9050919050565b5f612dba826124d7565b9150612dc5836124d7565b9250828203905081811115612ddd57612ddc612cc2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612e3d602a836123d9565b9150612e4882612de3565b604082019050919050565b5f6020820190508181035f830152612e6a81612e31565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ed9816124ad565b92915050565b5f60208284031215612ef457612ef3612479565b5b5f612f0184828501612ecb565b91505092915050565b5f819050919050565b5f612f2d612f28612f2384612f0a565b61257b565b6124d7565b9050919050565b612f3d81612f13565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f758161249c565b82525050565b5f612f868383612f6c565b60208301905092915050565b5f602082019050919050565b5f612fa882612f43565b612fb28185612f4d565b9350612fbd83612f5d565b805f5b83811015612fed578151612fd48882612f7b565b9750612fdf83612f92565b925050600181019050612fc0565b5085935050505092915050565b5f60a08201905061300d5f8301886125ef565b61301a6020830187612f34565b818103604083015261302c8186612f9e565b905061303b606083018561269b565b61304860808301846125ef565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613089826124d7565b9150613094836124d7565b9250826130a4576130a3613052565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130e3601b836123d9565b91506130ee826130af565b602082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b5f613121826124d7565b915061312c836124d7565b925082820261313a816124d7565b9150828204841483151761315157613150612cc2565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b26021836123d9565b91506131bd82613158565b604082019050919050565b5f6020820190508181035f8301526131df816131a6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122047fa108973feff8c50db9088a15d9806b1893c5254b0a95663a1997090b41f0b64736f6c63430008160033
Deployed Bytecode
0x608060405260043610610143575f3560e01c806374010ece116100b5578063a2a957bb1161006e578063a2a957bb14610422578063a9059cbb1461044a578063c3c8cd8014610486578063dd62ed3e1461049c578063ea1644d5146104d8578063f2fde38b146105005761014a565b806374010ece1461032a5780637d1db4a5146103525780638da5cb5b1461037c5780638f70ccf7146103a65780638f9a55c0146103ce57806395d89b41146103f85761014a565b80632fd689e3116101075780632fd689e314610244578063313ce5671461026e57806349bd5a5e146102985780636fc3eaec146102c257806370a08231146102d8578063715018a6146103145761014a565b806306fdde031461014e578063095ea7b3146101785780631694505e146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610528565b60405161016f9190612459565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061250a565b610565565b6040516101ab9190612562565b60405180910390f35b3480156101bf575f80fd5b506101c8610582565b6040516101d591906125d6565b60405180910390f35b3480156101e9575f80fd5b506101f26105a7565b6040516101ff91906125fe565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190612617565b6105b6565b60405161023b9190612562565b60405180910390f35b34801561024f575f80fd5b5061025861068a565b60405161026591906125fe565b60405180910390f35b348015610279575f80fd5b50610282610690565b60405161028f9190612682565b60405180910390f35b3480156102a3575f80fd5b506102ac610698565b6040516102b991906126aa565b60405180910390f35b3480156102cd575f80fd5b506102d66106bd565b005b3480156102e3575f80fd5b506102fe60048036038101906102f991906126c3565b61078a565b60405161030b91906125fe565b60405180910390f35b34801561031f575f80fd5b506103286107d8565b005b348015610335575f80fd5b50610350600480360381019061034b91906126ee565b610926565b005b34801561035d575f80fd5b506103666109c4565b60405161037391906125fe565b60405180910390f35b348015610387575f80fd5b506103906109ca565b60405161039d91906126aa565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c79190612743565b6109f1565b005b3480156103d9575f80fd5b506103e2610aa1565b6040516103ef91906125fe565b60405180910390f35b348015610403575f80fd5b5061040c610aa7565b6040516104199190612459565b60405180910390f35b34801561042d575f80fd5b506104486004803603810190610443919061276e565b610ae4565b005b348015610455575f80fd5b50610470600480360381019061046b919061250a565b610b9a565b60405161047d9190612562565b60405180910390f35b348015610491575f80fd5b5061049a610bb7565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906127d2565b610c8c565b6040516104cf91906125fe565b60405180910390f35b3480156104e3575f80fd5b506104fe60048036038101906104f991906126ee565b610d0e565b005b34801561050b575f80fd5b50610526600480360381019061052191906126c3565b610dac565b005b60606040518060400160405280600b81526020017f424f54204f5244494e414c000000000000000000000000000000000000000000815250905090565b5f610578610571610f69565b8484610f70565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f6105c2848484611133565b61067f846105ce610f69565b61067a856040518060600160405280602881526020016131e76028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610631610f69565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118b69092919063ffffffff16565b610f70565b600190509392505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fd610f69565b73ffffffffffffffffffffffffffffffffffffffff161480610772575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075a610f69565b73ffffffffffffffffffffffffffffffffffffffff16145b61077a575f80fd5b5f47905061078781611918565b50565b5f6107d160025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a0b565b9050919050565b6107e0610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108639061285a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092e610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b19061285a565b60405180910390fd5b8060158190555050565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109f9610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c9061285a565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600581526020017f424f524449000000000000000000000000000000000000000000000000000000815250905090565b610aec610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f9061285a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f610bad610ba6610f69565b8484611133565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf7610f69565b73ffffffffffffffffffffffffffffffffffffffff161480610c6c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c54610f69565b73ffffffffffffffffffffffffffffffffffffffff16145b610c74575f80fd5b5f610c7e3061078a565b9050610c8981611a77565b50565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d16610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d999061285a565b60405180910390fd5b8060168190555050565b610db4610f69565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e379061285a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea5906128e8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd590612976565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361104c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104390612a04565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161112691906125fe565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119890612a92565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120690612b20565b60405180910390fd5b5f8111611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612bae565b60405180910390fd5b6112596109ca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112c757506112976109ca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115c35760148054906101000a900460ff16611354576112e66109ca565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612c3c565b60405180910390fd5b5b601554811115611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612ca4565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461144557601654816113fa8461078a565b6114049190612cef565b10611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612d92565b60405180910390fd5b5b5f61144f3061078a565b90505f601754821015905060155482106114695760155491505b8080156114835750601460159054906101000a900460ff16155b80156114dc575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114f45750601460169054906101000a900460ff165b8015611547575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561159a575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115c0576115a882611a77565b5f4790505f8111156115be576115bd47611918565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611663575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611714575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611713575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611721575f90506118a4565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ca575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117e257600854600c81905550600954600d819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561188b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a357600a54600c81905550600b54600d819055505b5b6118b084848484611ce2565b50505050565b5f8383111582906118fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f49190612459565b60405180910390fd5b505f838561190b9190612db0565b9050809150509392505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611967600284611d0f90919063ffffffff16565b90811502906040515f60405180830381858888f1935050505015801561198f573d5f803e3d5ffd5b5060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119df600284611d0f90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611a07573d5f803e3d5ffd5b5050565b5f600654821115611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890612e53565b60405180910390fd5b5f611a5a611d58565b9050611a6f8184611d0f90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611aae57611aad612e71565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b50905030815f81518110611af357611af2612e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bbb9190612edf565b81600181518110611bcf57611bce612e9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c353060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f70565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c97959493929190612ffa565b5f604051808303815f87803b158015611cae575f80fd5b505af1158015611cc0573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80611cf057611cef611d81565b5b611cfb848484611dba565b80611d0957611d08611f7a565b5b50505050565b5f611d5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f8e565b905092915050565b5f805f611d63611fef565b91509150611d7a8183611d0f90919063ffffffff16565b9250505090565b5f600c54148015611d9357505f600d54145b611db857600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80611dc98761204b565b955095509550955095509550611e258660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ab90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611eb68560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611f0081612151565b611f0a8483612208565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f6791906125fe565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f8083118290611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb9190612459565b60405180910390fd5b505f8385611fe2919061307f565b9050809150509392505050565b5f805f60065490505f670de0b6b3a76400009050612020670de0b6b3a7640000600654611d0f90919063ffffffff16565b82101561203e57600654670de0b6b3a7640000935093505050612047565b81819350935050505b9091565b5f805f805f805f805f6120638a600c54600d54612242565b9250925092505f612072611d58565b90505f805f6120838e8787876122d4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6120ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118b6565b905092915050565b5f8082846121029190612cef565b905083811015612147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213e906130f9565b60405180910390fd5b8091505092915050565b5f61215a611d58565b90505f612170828461235890919063ffffffff16565b90506121c28160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120f490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b61221d826006546120ab90919063ffffffff16565b600681905550612238816007546120f490919063ffffffff16565b6007819055505050565b5f805f8061226c606461225e888a61235890919063ffffffff16565b611d0f90919063ffffffff16565b90505f6122956064612287888b61235890919063ffffffff16565b611d0f90919063ffffffff16565b90505f6122bd826122af858c6120ab90919063ffffffff16565b6120ab90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f806122eb858961235890919063ffffffff16565b90505f612301868961235890919063ffffffff16565b90505f612317878961235890919063ffffffff16565b90505f61233f8261233185876120ab90919063ffffffff16565b6120ab90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612368575f90506123c9565b5f82846123759190613117565b9050828482612384919061307f565b146123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bb906131c8565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124065780820151818401526020810190506123eb565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61242b826123cf565b61243581856123d9565b93506124458185602086016123e9565b61244e81612411565b840191505092915050565b5f6020820190508181035f8301526124718184612421565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a68261247d565b9050919050565b6124b68161249c565b81146124c0575f80fd5b50565b5f813590506124d1816124ad565b92915050565b5f819050919050565b6124e9816124d7565b81146124f3575f80fd5b50565b5f81359050612504816124e0565b92915050565b5f80604083850312156125205761251f612479565b5b5f61252d858286016124c3565b925050602061253e858286016124f6565b9150509250929050565b5f8115159050919050565b61255c81612548565b82525050565b5f6020820190506125755f830184612553565b92915050565b5f819050919050565b5f61259e6125996125948461247d565b61257b565b61247d565b9050919050565b5f6125af82612584565b9050919050565b5f6125c0826125a5565b9050919050565b6125d0816125b6565b82525050565b5f6020820190506125e95f8301846125c7565b92915050565b6125f8816124d7565b82525050565b5f6020820190506126115f8301846125ef565b92915050565b5f805f6060848603121561262e5761262d612479565b5b5f61263b868287016124c3565b935050602061264c868287016124c3565b925050604061265d868287016124f6565b9150509250925092565b5f60ff82169050919050565b61267c81612667565b82525050565b5f6020820190506126955f830184612673565b92915050565b6126a48161249c565b82525050565b5f6020820190506126bd5f83018461269b565b92915050565b5f602082840312156126d8576126d7612479565b5b5f6126e5848285016124c3565b91505092915050565b5f6020828403121561270357612702612479565b5b5f612710848285016124f6565b91505092915050565b61272281612548565b811461272c575f80fd5b50565b5f8135905061273d81612719565b92915050565b5f6020828403121561275857612757612479565b5b5f6127658482850161272f565b91505092915050565b5f805f806080858703121561278657612785612479565b5b5f612793878288016124f6565b94505060206127a4878288016124f6565b93505060406127b5878288016124f6565b92505060606127c6878288016124f6565b91505092959194509250565b5f80604083850312156127e8576127e7612479565b5b5f6127f5858286016124c3565b9250506020612806858286016124c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128446020836123d9565b915061284f82612810565b602082019050919050565b5f6020820190508181035f83015261287181612838565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6128d26026836123d9565b91506128dd82612878565b604082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129606024836123d9565b915061296b82612906565b604082019050919050565b5f6020820190508181035f83015261298d81612954565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129ee6022836123d9565b91506129f982612994565b604082019050919050565b5f6020820190508181035f830152612a1b816129e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a7c6025836123d9565b9150612a8782612a22565b604082019050919050565b5f6020820190508181035f830152612aa981612a70565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b0a6023836123d9565b9150612b1582612ab0565b604082019050919050565b5f6020820190508181035f830152612b3781612afe565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b986029836123d9565b9150612ba382612b3e565b604082019050919050565b5f6020820190508181035f830152612bc581612b8c565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612c26603f836123d9565b9150612c3182612bcc565b604082019050919050565b5f6020820190508181035f830152612c5381612c1a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f612c8e601c836123d9565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cf9826124d7565b9150612d04836124d7565b9250828201905080821115612d1c57612d1b612cc2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7c6023836123d9565b9150612d8782612d22565b604082019050919050565b5f6020820190508181035f830152612da981612d70565b9050919050565b5f612dba826124d7565b9150612dc5836124d7565b9250828203905081811115612ddd57612ddc612cc2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612e3d602a836123d9565b9150612e4882612de3565b604082019050919050565b5f6020820190508181035f830152612e6a81612e31565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612ed9816124ad565b92915050565b5f60208284031215612ef457612ef3612479565b5b5f612f0184828501612ecb565b91505092915050565b5f819050919050565b5f612f2d612f28612f2384612f0a565b61257b565b6124d7565b9050919050565b612f3d81612f13565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f758161249c565b82525050565b5f612f868383612f6c565b60208301905092915050565b5f602082019050919050565b5f612fa882612f43565b612fb28185612f4d565b9350612fbd83612f5d565b805f5b83811015612fed578151612fd48882612f7b565b9750612fdf83612f92565b925050600181019050612fc0565b5085935050505092915050565b5f60a08201905061300d5f8301886125ef565b61301a6020830187612f34565b818103604083015261302c8186612f9e565b905061303b606083018561269b565b61304860808301846125ef565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613089826124d7565b9150613094836124d7565b9250826130a4576130a3613052565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130e3601b836123d9565b91506130ee826130af565b602082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b5f613121826124d7565b915061312c836124d7565b925082820261313a816124d7565b9150828204841483151761315157613150612cc2565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b26021836123d9565b91506131bd82613158565b604082019050919050565b5f6020820190508181035f8301526131df816131a6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122047fa108973feff8c50db9088a15d9806b1893c5254b0a95663a1997090b41f0b64736f6c63430008160033
Deployed Bytecode Sourcemap
4270:13141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6801:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7726:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5630:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7078:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7927:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5928:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6987:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5678:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13005:276;;;;;;;;;;;;;:::i;:::-;;7181:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1722:148;;;;;;;;;;;;;:::i;:::-;;17155:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5820:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1508:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12611:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5873:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6892:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16784:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7327:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12720:277;;;;;;;;;;;;;:::i;:::-;;7534:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17293:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1878:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6801:83;6838:13;6871:5;;;;;;;;;;;;;;;;;6864:12;;6801:83;:::o;7726:193::-;7828:4;7850:39;7859:12;:10;:12::i;:::-;7873:7;7882:6;7850:8;:39::i;:::-;7907:4;7900:11;;7726:193;;;;:::o;5630:41::-;;;;;;;;;;;;;:::o;7078:95::-;7131:7;4816:18;7151:14;;7078:95;:::o;7927:446::-;8059:4;8076:36;8086:6;8094:9;8105:6;8076:9;:36::i;:::-;8123:220;8146:6;8167:12;:10;:12::i;:::-;8194:138;8250:6;8194:138;;;;;;;;;;;;;;;;;:11;:19;8206:6;8194:19;;;;;;;;;;;;;;;:33;8214:12;:10;:12::i;:::-;8194:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8123:8;:220::i;:::-;8361:4;8354:11;;7927:446;;;;;:::o;5928:49::-;;;;:::o;6987:83::-;7028:5;4490:1;7046:16;;6987:83;:::o;5678:28::-;;;;;;;;;;;;;:::o;13005:276::-;13085:19;;;;;;;;;;;13069:35;;:12;:10;:12::i;:::-;:35;;;:89;;;;13141:17;;;;;;;;;;;13125:33;;:12;:10;:12::i;:::-;:33;;;13069:89;13047:122;;;;;;13180:26;13209:21;13180:50;;13241:32;13254:18;13241:12;:32::i;:::-;13036:245;13005:276::o;7181:138::-;7247:7;7274:37;7294:7;:16;7302:7;7294:16;;;;;;;;;;;;;;;;7274:19;:37::i;:::-;7267:44;;7181:138;;;:::o;1722:148::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1829:1:::1;1792:40;;1813:6;::::0;::::1;;;;;;;;1792:40;;;;;;;;;;;;1860:1;1843:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1722:148::o:0;17155:108::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17244:11:::1;17229:12;:26;;;;17155:108:::0;:::o;5820:46::-;;;;:::o;1508:79::-;1546:7;1573:6;;;;;;;;;;;1566:13;;1508:79;:::o;12611:101::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12692:12:::1;12678:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;12611:101:::0;:::o;5873:48::-;;;;:::o;6892:87::-;6931:13;6964:7;;;;;;;;;;;;;;;;;6957:14;;6892:87;:::o;16784:336::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16978:13:::1;16961:14;:30;;;;17020:14;17002:15;:32;;;;17062:11;17047:12;:26;;;;17100:12;17084:13;:28;;;;16784:336:::0;;;;:::o;7327:199::-;7432:4;7454:42;7464:12;:10;:12::i;:::-;7478:9;7489:6;7454:9;:42::i;:::-;7514:4;7507:11;;7327:199;;;;:::o;12720:277::-;12800:19;;;;;;;;;;;12784:35;;:12;:10;:12::i;:::-;:35;;;:89;;;;12856:17;;;;;;;;;;;12840:33;;:12;:10;:12::i;:::-;:33;;;12784:89;12762:122;;;;;;12895:23;12921:24;12939:4;12921:9;:24::i;:::-;12895:50;;12956:33;12973:15;12956:16;:33::i;:::-;12751:246;12720:277::o;7534:184::-;7651:7;7683:11;:18;7695:5;7683:18;;;;;;;;;;;;;;;:27;7702:7;7683:27;;;;;;;;;;;;;;;;7676:34;;7534:184;;;;:::o;17293:115::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17387:13:::1;17370:14;:30;;;;17293:115:::0;:::o;1878:281::-;1645:12;:10;:12::i;:::-;1635:22;;:6;;;;;;;;;;:22;;;1627:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2001:1:::1;1981:22;;:8;:22;;::::0;1959:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2114:8;2085:38;;2106:6;::::0;::::1;;;;;;;;2085:38;;;;;;;;;;;;2143:8;2134:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1878:281:::0;:::o;222:98::-;275:7;302:10;295:17;;222:98;:::o;9064:369::-;9208:1;9191:19;;:5;:19;;;9183:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9289:1;9270:21;;:7;:21;;;9262:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9371:6;9341:11;:18;9353:5;9341:18;;;;;;;;;;;;;;;:27;9360:7;9341:27;;;;;;;;;;;;;;;:36;;;;9409:7;9393:32;;9402:5;9393:32;;;9418:6;9393:32;;;;;;:::i;:::-;;;;;;;;9064:369;;;:::o;9441:2503::-;9579:1;9563:18;;:4;:18;;;9555:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9656:1;9642:16;;:2;:16;;;9634:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9726:1;9717:6;:10;9709:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9798:7;:5;:7::i;:::-;9790:15;;:4;:15;;;;:32;;;;;9815:7;:5;:7::i;:::-;9809:13;;:2;:13;;;;9790:32;9786:1398;;;9877:11;;;;;;;;;;9872:205;;9947:7;:5;:7::i;:::-;9939:15;;:4;:15;;;9909:152;;;;;;;;;;;;:::i;:::-;;;;;;;;;9872:205;10111:12;;10101:6;:22;;10093:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10183:13;;;;;;;;;;;10177:19;;:2;:19;;;10173:208;;10272:14;;10263:6;10247:13;10257:2;10247:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10217:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;10173:208;10397:28;10428:24;10446:4;10428:9;:24::i;:::-;10397:55;;10467:12;10506:19;;10482:20;:43;;10467:58;;10570:12;;10546:20;:36;10542:112;;10626:12;;10603:35;;10542:112;10692:7;:35;;;;;10721:6;;;;;;;;;;;10720:7;10692:35;:77;;;;;10756:13;;;;;;;;;;;10748:21;;:4;:21;;;;10692:77;:109;;;;;10790:11;;;;;;;;;;;10692:109;:155;;;;;10823:18;:24;10842:4;10823:24;;;;;;;;;;;;;;;;;;;;;;;;;10822:25;10692:155;:199;;;;;10869:18;:22;10888:2;10869:22;;;;;;;;;;;;;;;;;;;;;;;;;10868:23;10692:199;10670:503;;;10926:38;10943:20;10926:16;:38::i;:::-;10983:26;11012:21;10983:50;;11077:1;11056:18;:22;11052:106;;;11103:35;11116:21;11103:12;:35::i;:::-;11052:106;10907:266;10670:503;9824:1360;;9786:1398;11196:12;11211:4;11196:19;;11274:18;:24;11293:4;11274:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11302:18;:22;11321:2;11302:22;;;;;;;;;;;;;;;;;;;;;;;;;11274:50;11273:115;;;;11351:13;;;;;;;;;;;11343:21;;:4;:21;;;;:44;;;;;11374:13;;;;;;;;;;;11368:19;;:2;:19;;;;11343:44;11273:115;11255:628;;;11425:5;11415:15;;11255:628;;;11507:13;;;;;;;;;;;11499:21;;:4;:21;;;:55;;;;;11538:15;;;;;;;;;;;11524:30;;:2;:30;;;;11499:55;11495:163;;;11587:14;;11575:9;:26;;;;11630:12;;11620:7;:22;;;;11495:163;11717:13;;;;;;;;;;;11711:19;;:2;:19;;;:55;;;;;11750:15;;;;;;;;;;;11734:32;;:4;:32;;;;11711:55;11707:165;;;11799:15;;11787:9;:27;;;;11843:13;;11833:7;:23;;;;11707:165;11255:628;11895:41;11910:4;11916:2;11920:6;11928:7;11895:14;:41::i;:::-;9544:2400;9441:2503;;;:::o;2521:224::-;2641:7;2674:1;2669;:6;;2677:12;2661:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2701:9;2717:1;2713;:5;;;;:::i;:::-;2701:17;;2736:1;2729:8;;;2521:224;;;;;:::o;12443:160::-;12500:19;;;;;;;;;;;:28;;:43;12529:13;12540:1;12529:6;:10;;:13;;;;:::i;:::-;12500:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12554:17;;;;;;;;;;;:26;;:41;12581:13;12592:1;12581:6;:10;;:13;;;;:::i;:::-;12554:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12443:160;:::o;8381:323::-;8476:7;8534;;8523;:18;;8501:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8622:19;8644:10;:8;:10::i;:::-;8622:32;;8672:24;8684:11;8672:7;:11;;:24;;;;:::i;:::-;8665:31;;;8381:323;;;:::o;11952:483::-;6082:4;6073:6;;:13;;;;;;;;;;;;;;;;;;12030:21:::1;12068:1;12054:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12030:40;;12099:4;12081;12086:1;12081:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12125:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12115:4;12120:1;12115:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12158:62;12175:4;12190:15;;;;;;;;;;;12208:11;12158:8;:62::i;:::-;12231:15;;;;;;;;;;;:66;;;12312:11;12338:1;12354:4;12381;12401:15;12231:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12019:416;6118:5:::0;6109:6;;:14;;;;;;;;;;;;;;;;;;11952:483;:::o;13289:282::-;13445:7;13440:28;;13454:14;:12;:14::i;:::-;13440:28;13479:44;13497:6;13505:9;13516:6;13479:17;:44::i;:::-;13539:7;13534:29;;13548:15;:13;:15::i;:::-;13534:29;13289:282;;;;:::o;3007:132::-;3065:7;3092:39;3096:1;3099;3092:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3085:46;;3007:132;;;;:::o;16343:166::-;16385:7;16406:15;16423;16442:19;:17;:19::i;:::-;16405:56;;;;16481:20;16493:7;16481;:11;;:20;;;;:::i;:::-;16474:27;;;;16343:166;:::o;8712:219::-;8772:1;8759:9;;:14;:30;;;;;8788:1;8777:7;;:12;8759:30;8791:7;8755:43;8830:9;;8810:17;:29;;;;8868:7;;8850:15;:25;;;;8900:1;8888:9;:13;;;;8922:1;8912:7;:11;;;;8712:219;:::o;13579:610::-;13726:15;13756:23;13794:12;13821:23;13859:12;13886:13;13913:19;13924:7;13913:10;:19::i;:::-;13711:221;;;;;;;;;;;;13961:28;13981:7;13961;:15;13969:6;13961:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13943:7;:15;13951:6;13943:15;;;;;;;;;;;;;;;:46;;;;14021:39;14044:15;14021:7;:18;14029:9;14021:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14000:7;:18;14008:9;14000:18;;;;;;;;;;;;;;;:60;;;;14071:16;14081:5;14071:9;:16::i;:::-;14098:23;14110:4;14116;14098:11;:23::i;:::-;14154:9;14137:44;;14146:6;14137:44;;;14165:15;14137:44;;;;;;:::i;:::-;;;;;;;;13700:489;;;;;;13579:610;;;:::o;8939:117::-;8995:17;;8983:9;:29;;;;9033:15;;9023:7;:25;;;;8939:117::o;3147:223::-;3267:7;3299:1;3295;:5;3302:12;3287:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3326:9;3342:1;3338;:5;;;;:::i;:::-;3326:17;;3361:1;3354:8;;;3147:223;;;;;:::o;16517:259::-;16568:7;16577;16597:15;16615:7;;16597:25;;16633:15;4816:18;16633:25;;16683:20;4816:18;16683:7;;:11;;:20;;;;:::i;:::-;16673:7;:30;16669:61;;;16713:7;;4816:18;16705:25;;;;;;;;16669:61;16751:7;16760;16743:25;;;;;;16517:259;;;:::o;14608:704::-;14708:7;14730;14752;14774;14796;14818;14854:23;14879:12;14893:13;14910:90;14936:7;14958:9;;14982:7;;14910:11;:90::i;:::-;14853:147;;;;;;15011:19;15033:10;:8;:10::i;:::-;15011:32;;15055:15;15072:23;15097:12;15113:109;15139:7;15161:4;15180:5;15200:11;15113;:109::i;:::-;15054:168;;;;;;15243:7;15252:15;15269:4;15275:15;15292:4;15298:5;15235:69;;;;;;;;;;;;;;;;;;;14608:704;;;;;;;:::o;2377:136::-;2435:7;2462:43;2466:1;2469;2462:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2455:50;;2377:136;;;;:::o;2190:179::-;2248:7;2268:9;2284:1;2280;:5;;;;:::i;:::-;2268:17;;2309:1;2304;:6;;2296:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2360:1;2353:8;;;2190:179;;;;:::o;14197:211::-;14250:19;14272:10;:8;:10::i;:::-;14250:32;;14293:13;14309:22;14319:11;14309:5;:9;;:22;;;;:::i;:::-;14293:38;;14367:33;14394:5;14367:7;:22;14383:4;14367:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14342:7;:22;14358:4;14342:22;;;;;;;;;;;;;;;:58;;;;14239:169;;14197:211;:::o;14416:147::-;14494:17;14506:4;14494:7;;:11;;:17;;;;:::i;:::-;14484:7;:27;;;;14535:20;14550:4;14535:10;;:14;;:20;;;;:::i;:::-;14522:10;:33;;;;14416:147;;:::o;15320:471::-;15489:7;15511;15533;15568:12;15583:30;15609:3;15583:21;15595:8;15583:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15568:45;;15624:13;15640:28;15664:3;15640:19;15652:6;15640:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15624:44;;15679:23;15705:28;15727:5;15705:17;15717:4;15705:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15679:54;;15754:15;15771:4;15777:5;15746:37;;;;;;;;;15320:471;;;;;;;:::o;15799:536::-;15993:7;16015;16037;16072:15;16090:24;16102:11;16090:7;:11;;:24;;;;:::i;:::-;16072:42;;16125:12;16140:21;16149:11;16140:4;:8;;:21;;;;:::i;:::-;16125:36;;16172:13;16188:22;16198:11;16188:5;:9;;:22;;;;:::i;:::-;16172:38;;16221:23;16247:28;16269:5;16247:17;16259:4;16247:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16221:54;;16296:7;16305:15;16322:4;16288:39;;;;;;;;;;15799:536;;;;;;;;:::o;2753:246::-;2811:7;2840:1;2835;:6;2831:47;;2865:1;2858:8;;;;2831:47;2888:9;2904:1;2900;:5;;;;:::i;:::-;2888:17;;2933:1;2928;2924;:5;;;;:::i;:::-;:10;2916:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2990:1;2983:8;;;2753:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:323::-;7165:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:119;;;7220:79;;:::i;:::-;7182:119;7340:1;7365:50;7407:7;7398:6;7387:9;7383:22;7365:50;:::i;:::-;7355:60;;7311:114;7109:323;;;;:::o;7438:765::-;7524:6;7532;7540;7548;7597:3;7585:9;7576:7;7572:23;7568:33;7565:120;;;7604:79;;:::i;:::-;7565:120;7724:1;7749:53;7794:7;7785:6;7774:9;7770:22;7749:53;:::i;:::-;7739:63;;7695:117;7851:2;7877:53;7922:7;7913:6;7902:9;7898:22;7877:53;:::i;:::-;7867:63;;7822:118;7979:2;8005:53;8050:7;8041:6;8030:9;8026:22;8005:53;:::i;:::-;7995:63;;7950:118;8107:2;8133:53;8178:7;8169:6;8158:9;8154:22;8133:53;:::i;:::-;8123:63;;8078:118;7438:765;;;;;;;:::o;8209:474::-;8277:6;8285;8334:2;8322:9;8313:7;8309:23;8305:32;8302:119;;;8340:79;;:::i;:::-;8302:119;8460:1;8485:53;8530:7;8521:6;8510:9;8506:22;8485:53;:::i;:::-;8475:63;;8431:117;8587:2;8613:53;8658:7;8649:6;8638:9;8634:22;8613:53;:::i;:::-;8603:63;;8558:118;8209:474;;;;;:::o;8689:182::-;8829:34;8825:1;8817:6;8813:14;8806:58;8689:182;:::o;8877:366::-;9019:3;9040:67;9104:2;9099:3;9040:67;:::i;:::-;9033:74;;9116:93;9205:3;9116:93;:::i;:::-;9234:2;9229:3;9225:12;9218:19;;8877:366;;;:::o;9249:419::-;9415:4;9453:2;9442:9;9438:18;9430:26;;9502:9;9496:4;9492:20;9488:1;9477:9;9473:17;9466:47;9530:131;9656:4;9530:131;:::i;:::-;9522:139;;9249:419;;;:::o;9674:225::-;9814:34;9810:1;9802:6;9798:14;9791:58;9883:8;9878:2;9870:6;9866:15;9859:33;9674:225;:::o;9905:366::-;10047:3;10068:67;10132:2;10127:3;10068:67;:::i;:::-;10061:74;;10144:93;10233:3;10144:93;:::i;:::-;10262:2;10257:3;10253:12;10246:19;;9905:366;;;:::o;10277:419::-;10443:4;10481:2;10470:9;10466:18;10458:26;;10530:9;10524:4;10520:20;10516:1;10505:9;10501:17;10494:47;10558:131;10684:4;10558:131;:::i;:::-;10550:139;;10277:419;;;:::o;10702:223::-;10842:34;10838:1;10830:6;10826:14;10819:58;10911:6;10906:2;10898:6;10894:15;10887:31;10702:223;:::o;10931:366::-;11073:3;11094:67;11158:2;11153:3;11094:67;:::i;:::-;11087:74;;11170:93;11259:3;11170:93;:::i;:::-;11288:2;11283:3;11279:12;11272:19;;10931:366;;;:::o;11303:419::-;11469:4;11507:2;11496:9;11492:18;11484:26;;11556:9;11550:4;11546:20;11542:1;11531:9;11527:17;11520:47;11584:131;11710:4;11584:131;:::i;:::-;11576:139;;11303:419;;;:::o;11728:221::-;11868:34;11864:1;11856:6;11852:14;11845:58;11937:4;11932:2;11924:6;11920:15;11913:29;11728:221;:::o;11955:366::-;12097:3;12118:67;12182:2;12177:3;12118:67;:::i;:::-;12111:74;;12194:93;12283:3;12194:93;:::i;:::-;12312:2;12307:3;12303:12;12296:19;;11955:366;;;:::o;12327:419::-;12493:4;12531:2;12520:9;12516:18;12508:26;;12580:9;12574:4;12570:20;12566:1;12555:9;12551:17;12544:47;12608:131;12734:4;12608:131;:::i;:::-;12600:139;;12327:419;;;:::o;12752:224::-;12892:34;12888:1;12880:6;12876:14;12869:58;12961:7;12956:2;12948:6;12944:15;12937:32;12752:224;:::o;12982:366::-;13124:3;13145:67;13209:2;13204:3;13145:67;:::i;:::-;13138:74;;13221:93;13310:3;13221:93;:::i;:::-;13339:2;13334:3;13330:12;13323:19;;12982:366;;;:::o;13354:419::-;13520:4;13558:2;13547:9;13543:18;13535:26;;13607:9;13601:4;13597:20;13593:1;13582:9;13578:17;13571:47;13635:131;13761:4;13635:131;:::i;:::-;13627:139;;13354:419;;;:::o;13779:222::-;13919:34;13915:1;13907:6;13903:14;13896:58;13988:5;13983:2;13975:6;13971:15;13964:30;13779:222;:::o;14007:366::-;14149:3;14170:67;14234:2;14229:3;14170:67;:::i;:::-;14163:74;;14246:93;14335:3;14246:93;:::i;:::-;14364:2;14359:3;14355:12;14348:19;;14007:366;;;:::o;14379:419::-;14545:4;14583:2;14572:9;14568:18;14560:26;;14632:9;14626:4;14622:20;14618:1;14607:9;14603:17;14596:47;14660:131;14786:4;14660:131;:::i;:::-;14652:139;;14379:419;;;:::o;14804:228::-;14944:34;14940:1;14932:6;14928:14;14921:58;15013:11;15008:2;15000:6;14996:15;14989:36;14804:228;:::o;15038:366::-;15180:3;15201:67;15265:2;15260:3;15201:67;:::i;:::-;15194:74;;15277:93;15366:3;15277:93;:::i;:::-;15395:2;15390:3;15386:12;15379:19;;15038:366;;;:::o;15410:419::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15663:9;15657:4;15653:20;15649:1;15638:9;15634:17;15627:47;15691:131;15817:4;15691:131;:::i;:::-;15683:139;;15410:419;;;:::o;15835:250::-;15975:34;15971:1;15963:6;15959:14;15952:58;16044:33;16039:2;16031:6;16027:15;16020:58;15835:250;:::o;16091:366::-;16233:3;16254:67;16318:2;16313:3;16254:67;:::i;:::-;16247:74;;16330:93;16419:3;16330:93;:::i;:::-;16448:2;16443:3;16439:12;16432:19;;16091:366;;;:::o;16463:419::-;16629:4;16667:2;16656:9;16652:18;16644:26;;16716:9;16710:4;16706:20;16702:1;16691:9;16687:17;16680:47;16744:131;16870:4;16744:131;:::i;:::-;16736:139;;16463:419;;;:::o;16888:178::-;17028:30;17024:1;17016:6;17012:14;17005:54;16888:178;:::o;17072:366::-;17214:3;17235:67;17299:2;17294:3;17235:67;:::i;:::-;17228:74;;17311:93;17400:3;17311:93;:::i;:::-;17429:2;17424:3;17420:12;17413:19;;17072:366;;;:::o;17444:419::-;17610:4;17648:2;17637:9;17633:18;17625:26;;17697:9;17691:4;17687:20;17683:1;17672:9;17668:17;17661:47;17725:131;17851:4;17725:131;:::i;:::-;17717:139;;17444:419;;;:::o;17869:180::-;17917:77;17914:1;17907:88;18014:4;18011:1;18004:15;18038:4;18035:1;18028:15;18055:191;18095:3;18114:20;18132:1;18114:20;:::i;:::-;18109:25;;18148:20;18166:1;18148:20;:::i;:::-;18143:25;;18191:1;18188;18184:9;18177:16;;18212:3;18209:1;18206:10;18203:36;;;18219:18;;:::i;:::-;18203:36;18055:191;;;;:::o;18252:222::-;18392:34;18388:1;18380:6;18376:14;18369:58;18461:5;18456:2;18448:6;18444:15;18437:30;18252:222;:::o;18480:366::-;18622:3;18643:67;18707:2;18702:3;18643:67;:::i;:::-;18636:74;;18719:93;18808:3;18719:93;:::i;:::-;18837:2;18832:3;18828:12;18821:19;;18480:366;;;:::o;18852:419::-;19018:4;19056:2;19045:9;19041:18;19033:26;;19105:9;19099:4;19095:20;19091:1;19080:9;19076:17;19069:47;19133:131;19259:4;19133:131;:::i;:::-;19125:139;;18852:419;;;:::o;19277:194::-;19317:4;19337:20;19355:1;19337:20;:::i;:::-;19332:25;;19371:20;19389:1;19371:20;:::i;:::-;19366:25;;19415:1;19412;19408:9;19400:17;;19439:1;19433:4;19430:11;19427:37;;;19444:18;;:::i;:::-;19427:37;19277:194;;;;:::o;19477:229::-;19617:34;19613:1;19605:6;19601:14;19594:58;19686:12;19681:2;19673:6;19669:15;19662:37;19477:229;:::o;19712:366::-;19854:3;19875:67;19939:2;19934:3;19875:67;:::i;:::-;19868:74;;19951:93;20040:3;19951:93;:::i;:::-;20069:2;20064:3;20060:12;20053:19;;19712:366;;;:::o;20084:419::-;20250:4;20288:2;20277:9;20273:18;20265:26;;20337:9;20331:4;20327:20;20323:1;20312:9;20308:17;20301:47;20365:131;20491:4;20365:131;:::i;:::-;20357:139;;20084:419;;;:::o;20509:180::-;20557:77;20554:1;20547:88;20654:4;20651:1;20644:15;20678:4;20675:1;20668:15;20695:180;20743:77;20740:1;20733:88;20840:4;20837:1;20830:15;20864:4;20861:1;20854:15;20881:143;20938:5;20969:6;20963:13;20954:22;;20985:33;21012:5;20985:33;:::i;:::-;20881:143;;;;:::o;21030:351::-;21100:6;21149:2;21137:9;21128:7;21124:23;21120:32;21117:119;;;21155:79;;:::i;:::-;21117:119;21275:1;21300:64;21356:7;21347:6;21336:9;21332:22;21300:64;:::i;:::-;21290:74;;21246:128;21030:351;;;;:::o;21387:85::-;21432:7;21461:5;21450:16;;21387:85;;;:::o;21478:158::-;21536:9;21569:61;21587:42;21596:32;21622:5;21596:32;:::i;:::-;21587:42;:::i;:::-;21569:61;:::i;:::-;21556:74;;21478:158;;;:::o;21642:147::-;21737:45;21776:5;21737:45;:::i;:::-;21732:3;21725:58;21642:147;;:::o;21795:114::-;21862:6;21896:5;21890:12;21880:22;;21795:114;;;:::o;21915:184::-;22014:11;22048:6;22043:3;22036:19;22088:4;22083:3;22079:14;22064:29;;21915:184;;;;:::o;22105:132::-;22172:4;22195:3;22187:11;;22225:4;22220:3;22216:14;22208:22;;22105:132;;;:::o;22243:108::-;22320:24;22338:5;22320:24;:::i;:::-;22315:3;22308:37;22243:108;;:::o;22357:179::-;22426:10;22447:46;22489:3;22481:6;22447:46;:::i;:::-;22525:4;22520:3;22516:14;22502:28;;22357:179;;;;:::o;22542:113::-;22612:4;22644;22639:3;22635:14;22627:22;;22542:113;;;:::o;22691:732::-;22810:3;22839:54;22887:5;22839:54;:::i;:::-;22909:86;22988:6;22983:3;22909:86;:::i;:::-;22902:93;;23019:56;23069:5;23019:56;:::i;:::-;23098:7;23129:1;23114:284;23139:6;23136:1;23133:13;23114:284;;;23215:6;23209:13;23242:63;23301:3;23286:13;23242:63;:::i;:::-;23235:70;;23328:60;23381:6;23328:60;:::i;:::-;23318:70;;23174:224;23161:1;23158;23154:9;23149:14;;23114:284;;;23118:14;23414:3;23407:10;;22815:608;;;22691:732;;;;:::o;23429:831::-;23692:4;23730:3;23719:9;23715:19;23707:27;;23744:71;23812:1;23801:9;23797:17;23788:6;23744:71;:::i;:::-;23825:80;23901:2;23890:9;23886:18;23877:6;23825:80;:::i;:::-;23952:9;23946:4;23942:20;23937:2;23926:9;23922:18;23915:48;23980:108;24083:4;24074:6;23980:108;:::i;:::-;23972:116;;24098:72;24166:2;24155:9;24151:18;24142:6;24098:72;:::i;:::-;24180:73;24248:3;24237:9;24233:19;24224:6;24180:73;:::i;:::-;23429:831;;;;;;;;:::o;24266:180::-;24314:77;24311:1;24304:88;24411:4;24408:1;24401:15;24435:4;24432:1;24425:15;24452:185;24492:1;24509:20;24527:1;24509:20;:::i;:::-;24504:25;;24543:20;24561:1;24543:20;:::i;:::-;24538:25;;24582:1;24572:35;;24587:18;;:::i;:::-;24572:35;24629:1;24626;24622:9;24617:14;;24452:185;;;;:::o;24643:177::-;24783:29;24779:1;24771:6;24767:14;24760:53;24643:177;:::o;24826:366::-;24968:3;24989:67;25053:2;25048:3;24989:67;:::i;:::-;24982:74;;25065:93;25154:3;25065:93;:::i;:::-;25183:2;25178:3;25174:12;25167:19;;24826:366;;;:::o;25198:419::-;25364:4;25402:2;25391:9;25387:18;25379:26;;25451:9;25445:4;25441:20;25437:1;25426:9;25422:17;25415:47;25479:131;25605:4;25479:131;:::i;:::-;25471:139;;25198:419;;;:::o;25623:410::-;25663:7;25686:20;25704:1;25686:20;:::i;:::-;25681:25;;25720:20;25738:1;25720:20;:::i;:::-;25715:25;;25775:1;25772;25768:9;25797:30;25815:11;25797:30;:::i;:::-;25786:41;;25976:1;25967:7;25963:15;25960:1;25957:22;25937:1;25930:9;25910:83;25887:139;;26006:18;;:::i;:::-;25887:139;25671:362;25623:410;;;;:::o;26039:220::-;26179:34;26175:1;26167:6;26163:14;26156:58;26248:3;26243:2;26235:6;26231:15;26224:28;26039:220;:::o;26265:366::-;26407:3;26428:67;26492:2;26487:3;26428:67;:::i;:::-;26421:74;;26504:93;26593:3;26504:93;:::i;:::-;26622:2;26617:3;26613:12;26606:19;;26265:366;;;:::o;26637:419::-;26803:4;26841:2;26830:9;26826:18;26818:26;;26890:9;26884:4;26880:20;26876:1;26865:9;26861:17;26854:47;26918:131;27044:4;26918:131;:::i;:::-;26910:139;;26637:419;;;:::o
Swarm Source
ipfs://47fa108973feff8c50db9088a15d9806b1893c5254b0a95663a1997090b41f0b
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.