ERC-20
Overview
Max Total Supply
1,000,000 PAL
Holders
156
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.006344443799989269 PALValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DefiPal
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-17 */ //Defipal is payments for Modern Ages //https://t.me/defipal_portal //https://twitter.com/defiPal_inc //https://www.defipal.org //https://dashboard.defipal.org //https://www.tiktok.com/@defipal.crypto //https://defipal.gitbook.io/defipal_whitepaper/ //SPDX-License-Identifier: MIT pragma solidity ^0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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 ); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } } library Address { function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (bool success, ) = recipient.call{value: amount}(""); require( success, "Address: unable to send value, recipient may have reverted" ); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DefiPal is ERC20, Ownable { using Address for address payable; IRouter public router; address public pair; bool private _interlock = false; bool private providingLiquidity = true; bool public tradingEnabled = false; uint256 private maxThreshold = 10000 * 10**18; // 1% uint256 private minThrehold = 100 * 10**18; // 0.01% uint256 public MaxTxAmount = 1000000 * 10**18; // 2% uint256 public MaxWalletSize = 1000000 * 10**18; // 2% address public marketingWallet = 0xB11E03D6685B0D0CEbCF4A431D44900479A92F10; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; } Taxes private taxes = Taxes(5, 0); Taxes private sellTaxes = Taxes(5, 0); uint256 public BuyTaxes = taxes.marketing + taxes.liquidity; uint256 public SellTaxes = sellTaxes.marketing + sellTaxes.liquidity; mapping(address => bool) public exemptFee; mapping(address => bool) private isearlybuyer; event MaxTxUpdated(uint256 MaxWalletSize, uint256 MaxTxAmount); event BuyTaxesUpdated(uint256 marketing, uint256 liquidity); event SellTaxesUpdated(uint256 marketing, uint256 liquidity); modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() ERC20("DefiPal", "PAL") { _tokengeneration(msg.sender, 1000000 * 10**decimals()); IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()); router = _router; pair = _pair; exemptFee[msg.sender] = true; exemptFee[address(this)] = true; exemptFee[marketingWallet] = true; exemptFee[deadWallet] = true; } 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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue,"ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isearlybuyer[sender] && !isearlybuyer[recipient], "You can't transfer tokens" ); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } if (sender == pair && recipient != address(router) && !exemptFee[recipient] ) { require(amount <= MaxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(recipient) + amount <= MaxWalletSize, "Exceeds the maxWalletSize."); } uint256 feeswap; uint256 feesum; uint256 fee; Taxes memory currentTaxes; //set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == pair) { feeswap = sellTaxes.liquidity + sellTaxes.marketing; feesum = feeswap; currentTaxes = sellTaxes; } else if (recipient != pair) { feeswap = taxes.liquidity + taxes.marketing; feesum = feeswap; currentTaxes = taxes; } fee = (amount * feesum) / 100; //send fees if threshold has been reached //don't do this on buys, breaks swap if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes); //rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap { if (feeswap == 0) { return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= minThrehold) { if (contractBalance > maxThreshold) { } // Split the contract balance into halves uint256 denominator = feeswap * 2; uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator; uint256 initialBalance = address(this).balance; swapTokensForETH(contractBalance); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadWallet, block.timestamp ); } function updateLiquidityProvide(bool state) external onlyOwner { providingLiquidity = state; } function UpdateTreshhold(uint256 max_amount, uint256 min_amount) external onlyOwner { require(max_amount <= 10000, "must keep max Threshold at 1% or less" ); require(min_amount >= 100, "min Threshold must be greater than or equal to 0.01%"); maxThreshold = max_amount * 10**decimals(); minThrehold = min_amount * 10**decimals(); } function updateBuyFee( uint256 _marketing, uint256 _liquidity) external onlyOwner { taxes.marketing = _marketing; taxes.liquidity = _liquidity; emit BuyTaxesUpdated(_marketing, _liquidity); } function updateSellFee( uint256 _marketing, uint256 _liquidity) external onlyOwner { sellTaxes.marketing = _marketing; sellTaxes.liquidity = _liquidity; emit SellTaxesUpdated(_marketing, _liquidity); } function setMaxTxLimit(uint256 _maxWallet, uint256 _maxTx) external onlyOwner { MaxWalletSize = _maxWallet * 10**decimals(); MaxTxAmount = _maxTx * 10**decimals(); require (_maxWallet >= 1000, "Cannot set MaxWallet amount lower then 0.1%"); require (_maxTx >= 1000, "Cannot set MaxTx amount lower then 0.1%"); emit MaxTxUpdated(_maxWallet, _maxTx); } function enableTrading() external onlyOwner { require(!tradingEnabled, "Cannot re-enable trading"); tradingEnabled = true; } function setMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0), "Fee Address cannot be zero address"); require(newWallet != address(this), "Fee Address cannot be CA"); exemptFee[newWallet] = true; marketingWallet = newWallet; } function multiBlockSniper(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { isearlybuyer[accounts[i]] = state; } } function blockSniper(address account, bool state) external onlyOwner { isearlybuyer[account] = state; } function excludeFromFee(address _address) external onlyOwner { exemptFee[_address] = true; } function includeInFee(address _address) external onlyOwner { exemptFee[_address] = false; } function rescueEHT() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(owner()).transfer(contractETHBalance); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens"); IERC20(tokenAdd).transfer(owner(), amount); } // fallbacks receive() external payable {} }
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":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxWalletSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"MaxTxAmount","type":"uint256"}],"name":"MaxTxUpdated","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":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SellTaxesUpdated","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":"BuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"max_amount","type":"uint256"},{"internalType":"uint256","name":"min_amount","type":"uint256"}],"name":"UpdateTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"blockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"multiBlockSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEHT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet","type":"uint256"},{"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff02191690831515021790555069021e19e0c9bab240000060085568056bc75e2d6310000060095569d3c21bcecceda1000000600a5569d3c21bcecceda1000000600b5573b11e03d6685b0d0cebcf4a431d44900479a92f10600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600581526020016000815250600d600082015181600001556020820151816001015550506040518060400160405280600581526020016000815250600f60008201518160000155602082015181600101555050600d60010154600d60000154620001579190620007ca565b601155600f60010154600f60000154620001729190620007ca565b6012553480156200018257600080fd5b506040518060400160405280600781526020017f4465666950616c000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f50414c0000000000000000000000000000000000000000000000000000000000815250816003908162000200919062000a75565b50806004908162000212919062000a75565b50505062000235620002296200060460201b60201c565b6200060c60201b60201c565b62000274336200024a620006d260201b60201c565b600a62000258919062000cbd565b620f424062000268919062000d0e565b620006db60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000301919062000dc3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000369573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038f919062000dc3565b6040518363ffffffff1660e01b8152600401620003ae92919062000e06565b6020604051808303816000875af1158015620003ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f4919062000dc3565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016013600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e61565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b80600281905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000785919062000e44565b60405180910390a35050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d78262000791565b9150620007e48362000791565b9250828201905080821115620007ff57620007fe6200079b565b5b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088757607f821691505b6020821081036200089d576200089c6200083f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008c8565b620009138683620008c8565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000956620009506200094a8462000791565b6200092b565b62000791565b9050919050565b6000819050919050565b620009728362000935565b6200098a62000981826200095d565b848454620008d5565b825550505050565b600090565b620009a162000992565b620009ae81848462000967565b505050565b5b81811015620009d657620009ca60008262000997565b600181019050620009b4565b5050565b601f82111562000a2557620009ef81620008a3565b620009fa84620008b8565b8101602085101562000a0a578190505b62000a2262000a1985620008b8565b830182620009b3565b50505b505050565b600082821c905092915050565b600062000a4a6000198460080262000a2a565b1980831691505092915050565b600062000a65838362000a37565b9150826002028217905092915050565b62000a808262000805565b67ffffffffffffffff81111562000a9c5762000a9b62000810565b5b62000aa882546200086e565b62000ab5828285620009da565b600060209050601f83116001811462000aed576000841562000ad8578287015190505b62000ae4858262000a57565b86555062000b54565b601f19841662000afd86620008a3565b60005b8281101562000b275784890151825560018201915060208501945060208101905062000b00565b8683101562000b47578489015162000b43601f89168262000a37565b8355505b6001600288020188555050505b505050505050565b60008160011c9050919050565b6000808291508390505b600185111562000bbb5780860481111562000b935762000b926200079b565b5b600185161562000ba35780820291505b808102905062000bb38562000b5c565b945062000b73565b94509492505050565b60008262000bd6576001905062000ca9565b8162000be6576000905062000ca9565b816001811462000bff576002811462000c0a5762000c40565b600191505062000ca9565b60ff84111562000c1f5762000c1e6200079b565b5b8360020a91508482111562000c395762000c386200079b565b5b5062000ca9565b5060208310610133831016604e8410600b841016171562000c7a5782820a90508381111562000c745762000c736200079b565b5b62000ca9565b62000c89848484600162000b69565b9250905081840481111562000ca35762000ca26200079b565b5b81810290505b9392505050565b600060ff82169050919050565b600062000cca8262000791565b915062000cd78362000cb0565b925062000d067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bc4565b905092915050565b600062000d1b8262000791565b915062000d288362000791565b925082820262000d388162000791565b9150828204841483151762000d525762000d516200079b565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d8b8262000d5e565b9050919050565b62000d9d8162000d7e565b811462000da957600080fd5b50565b60008151905062000dbd8162000d92565b92915050565b60006020828403121562000ddc5762000ddb62000d59565b5b600062000dec8482850162000dac565b91505092915050565b62000e008162000d7e565b82525050565b600060408201905062000e1d600083018562000df5565b62000e2c602083018462000df5565b9392505050565b62000e3e8162000791565b82525050565b600060208201905062000e5b600083018462000e33565b92915050565b6148af8062000e716000396000f3fe60806040526004361061021e5760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb3146107ca578063ea2f0b37146107f5578063f2fde38b1461081e578063f887ea4014610847578063fc962edb1461087257610225565b8063ad3026e4146106d3578063beffc7d4146106fc578063c5d32bb214610725578063d256413e14610762578063dd62ed3e1461078d57610225565b8063a1e71b57116100f2578063a1e71b57146105ee578063a40f0ce714610617578063a457c2d71461062e578063a8aa1b311461066b578063a9059cbb1461069657610225565b80638a8c523c146105585780638cd4426d1461056f5780638da5cb5b1461059857806395d89b41146105c357610225565b8063437823ec116101a6578063610e34b911610175578063610e34b91461048557806370a08231146104ae578063715018a6146104eb57806375f0a8741461050257806385141a771461052d57610225565b8063437823ec146103df5780634ada218b146104085780635ae34339146104335780635d098b381461045c57610225565b80631d5dace3116101ed5780631d5dace3146102e657806323b872dd1461030f57806329b8cff31461034c578063313ce5671461037757806339509351146103a257610225565b806306fdde031461022a578063095ea7b3146102555780631340538f1461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61089d565b60405161024c9190612fb1565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061307b565b61092f565b60405161028991906130d6565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061311d565b61094d565b005b3480156102c757600080fd5b506102d06109e6565b6040516102dd9190613159565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190613174565b6109f0565b005b34801561031b57600080fd5b50610336600480360381019061033191906131b4565b610b43565b60405161034391906130d6565b60405180910390f35b34801561035857600080fd5b50610361610c44565b60405161036e9190613159565b60405180910390f35b34801561038357600080fd5b5061038c610c4a565b6040516103999190613223565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c4919061307b565b610c53565b6040516103d691906130d6565b60405180910390f35b3480156103eb57600080fd5b506104066004803603810190610401919061323e565b610cff565b005b34801561041457600080fd5b5061041d610dd6565b60405161042a91906130d6565b60405180910390f35b34801561043f57600080fd5b5061045a6004803603810190610455919061326b565b610de9565b005b34801561046857600080fd5b50610483600480360381019061047e919061323e565b610ec0565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613174565b6110b5565b005b3480156104ba57600080fd5b506104d560048036038101906104d0919061323e565b611182565b6040516104e29190613159565b60405180910390f35b3480156104f757600080fd5b506105006111ca565b005b34801561050e57600080fd5b50610517611252565b60405161052491906132ba565b60405180910390f35b34801561053957600080fd5b50610542611278565b60405161054f91906132ba565b60405180910390f35b34801561056457600080fd5b5061056d61127e565b005b34801561057b57600080fd5b506105966004803603810190610591919061307b565b611367565b005b3480156105a457600080fd5b506105ad6114db565b6040516105ba91906132ba565b60405180910390f35b3480156105cf57600080fd5b506105d8611505565b6040516105e59190612fb1565b60405180910390f35b3480156105fa57600080fd5b506106156004803603810190610610919061341d565b611597565b005b34801561062357600080fd5b5061062c6116a8565b005b34801561063a57600080fd5b506106556004803603810190610650919061307b565b61177a565b60405161066291906130d6565b60405180910390f35b34801561067757600080fd5b5061068061186e565b60405161068d91906132ba565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b8919061307b565b611894565b6040516106ca91906130d6565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613174565b6118ab565b005b34801561070857600080fd5b50610723600480360381019061071e9190613174565b611a38565b005b34801561073157600080fd5b5061074c6004803603810190610747919061323e565b611b05565b60405161075991906130d6565b60405180910390f35b34801561076e57600080fd5b50610777611b25565b6040516107849190613159565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190613479565b611b2b565b6040516107c19190613159565b60405180910390f35b3480156107d657600080fd5b506107df611bb2565b6040516107ec9190613159565b60405180910390f35b34801561080157600080fd5b5061081c6004803603810190610817919061323e565b611bb8565b005b34801561082a57600080fd5b506108456004803603810190610840919061323e565b611c8f565b005b34801561085357600080fd5b5061085c611d86565b6040516108699190613518565b60405180910390f35b34801561087e57600080fd5b50610887611dac565b6040516108949190613159565b60405180910390f35b6060600380546108ac90613562565b80601f01602080910402602001604051908101604052809291908181526020018280546108d890613562565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b600061094361093c611db2565b8484611dba565b6001905092915050565b610955611db2565b73ffffffffffffffffffffffffffffffffffffffff166109736114db565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c0906135df565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b6109f8611db2565b73ffffffffffffffffffffffffffffffffffffffff16610a166114db565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906135df565b60405180910390fd5b612710821115610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890613671565b60405180910390fd5b6064811015610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613703565b60405180910390fd5b610afd610c4a565b600a610b099190613885565b82610b1491906138d0565b600881905550610b22610c4a565b600a610b2e9190613885565b81610b3991906138d0565b6009819055505050565b6000610b50848484611f83565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b9b611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290613984565b60405180910390fd5b610c3885610c27611db2565b8584610c3391906139a4565b611dba565b60019150509392505050565b600b5481565b60006012905090565b6000610cf5610c60611db2565b848460016000610c6e611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf091906139d8565b611dba565b6001905092915050565b610d07611db2565b73ffffffffffffffffffffffffffffffffffffffff16610d256114db565b73ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906135df565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610df1611db2565b73ffffffffffffffffffffffffffffffffffffffff16610e0f6114db565b73ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906135df565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ec8611db2565b73ffffffffffffffffffffffffffffffffffffffff16610ee66114db565b73ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906135df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290613a7e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090613aea565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110bd611db2565b73ffffffffffffffffffffffffffffffffffffffff166110db6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611128906135df565b60405180910390fd5b81600d6000018190555080600d600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca8282604051611176929190613b0a565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d2611db2565b73ffffffffffffffffffffffffffffffffffffffff166111f06114db565b73ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906135df565b60405180910390fd5b6112506000612636565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611286611db2565b73ffffffffffffffffffffffffffffffffffffffff166112a46114db565b73ffffffffffffffffffffffffffffffffffffffff16146112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f1906135df565b60405180910390fd5b600760169054906101000a900460ff161561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613b7f565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b61136f611db2565b73ffffffffffffffffffffffffffffffffffffffff1661138d6114db565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906135df565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890613c11565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114756114db565b836040518363ffffffff1660e01b8152600401611493929190613c31565b6020604051808303816000875af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190613c6f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461151490613562565b80601f016020809104026020016040519081016040528092919081815260200182805461154090613562565b801561158d5780601f106115625761010080835404028352916020019161158d565b820191906000526020600020905b81548152906001019060200180831161157057829003601f168201915b5050505050905090565b61159f611db2565b73ffffffffffffffffffffffffffffffffffffffff166115bd6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a906135df565b60405180910390fd5b60005b82518110156116a357816014600085848151811061163757611636613c9c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061169b90613ccb565b915050611616565b505050565b6116b0611db2565b73ffffffffffffffffffffffffffffffffffffffff166116ce6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b906135df565b60405180910390fd5b60004790506117316114db565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611776573d6000803e3d6000fd5b5050565b60008060016000611789611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90613d85565b60405180910390fd5b611863611851611db2565b85858461185e91906139a4565b611dba565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a1338484611f83565b6001905092915050565b6118b3611db2565b73ffffffffffffffffffffffffffffffffffffffff166118d16114db565b73ffffffffffffffffffffffffffffffffffffffff1614611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e906135df565b60405180910390fd5b61192f610c4a565b600a61193b9190613885565b8261194691906138d0565b600b81905550611954610c4a565b600a6119609190613885565b8161196b91906138d0565b600a819055506103e88210156119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad90613e17565b60405180910390fd5b6103e88110156119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613ea9565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a2c929190613b0a565b60405180910390a15050565b611a40611db2565b73ffffffffffffffffffffffffffffffffffffffff16611a5e6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906135df565b60405180910390fd5b81600f6000018190555080600f600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611af9929190613b0a565b60405180910390a15050565b60136020528060005260406000206000915054906101000a900460ff1681565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b611bc0611db2565b73ffffffffffffffffffffffffffffffffffffffff16611bde6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b906135df565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c97611db2565b73ffffffffffffffffffffffffffffffffffffffff16611cb56114db565b73ffffffffffffffffffffffffffffffffffffffff1614611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d02906135df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7190613f3b565b60405180910390fd5b611d8381612636565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f9061405f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f769190613159565b60405180910390a3505050565b60008111611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906140f1565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561206a5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a09061415d565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561214d5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121a257600760169054906101000a900460ff166121a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198906141c9565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561224d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234657600a548111156122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490614235565b60405180910390fd5b600b54816122fa84611182565b61230491906139d8565b1115612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c906142a1565b60405180910390fd5b5b6000806000612353612f07565b600760149054906101000a900460ff16806123b75750601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061240b5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124195760009150612547565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124b157600f60000154600f6001015461248491906139d8565b9350839250600f604051806040016040529081600082015481526020016001820154815250509050612546565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461254557600d60000154600d6001015461251c91906139d8565b9350839250600d6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661255591906138d0565b61255f91906142f0565b9150600760159054906101000a900460ff1680156125cb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125db576125da84826126fc565b5b6125f1878784886125ec91906139a4565b61287e565b600082111561262d57600084111561262c5760006064858761261391906138d0565b61261d91906142f0565b905061262a88308361287e565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661287a576001600760146101000a81548160ff021916908315150217905550600082031561285e57600061273f30611182565b9050600954811061285c57600060028461275991906138d0565b905060008184602001518461276e91906138d0565b61277891906142f0565b9050600047905061278884612af0565b6000814761279691906139a4565b905060008660200151856127aa91906139a4565b826127b591906142f0565b905060008760200151826127c991906138d0565b905060008111156127df576127de8582612d33565b5b600088600001516002846127f391906138d0565b6127fd91906138d0565b905060008111156128545761285381600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e1390919063ffffffff16565b5b505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e490614393565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295390614425565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d9906144b7565b60405180910390fd5b81816129ee91906139a4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a7e91906139d8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae29190613159565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0d57612b0c6132da565b5b604051908082528060200260200182016040528015612b3b5781602001602082028036833780820191505090505b5090503081600081518110612b5357612b52613c9c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e91906144ec565b81600181518110612c3257612c31613c9c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dba565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cfd959493929190614612565b600060405180830381600087803b158015612d1757600080fd5b505af1158015612d2b573d6000803e3d6000fd5b505050505050565b612d6030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dba565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dc99695949392919061466c565b60606040518083038185885af1158015612de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0c91906146e2565b5050505050565b80471015612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614781565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e7c906147d2565b60006040518083038185875af1925050503d8060008114612eb9576040519150601f19603f3d011682016040523d82523d6000602084013e612ebe565b606091505b5050905080612f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef990614859565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f5b578082015181840152602081019050612f40565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f8382612f21565b612f8d8185612f2c565b9350612f9d818560208601612f3d565b612fa681612f67565b840191505092915050565b60006020820190508181036000830152612fcb8184612f78565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301282612fe7565b9050919050565b61302281613007565b811461302d57600080fd5b50565b60008135905061303f81613019565b92915050565b6000819050919050565b61305881613045565b811461306357600080fd5b50565b6000813590506130758161304f565b92915050565b6000806040838503121561309257613091612fdd565b5b60006130a085828601613030565b92505060206130b185828601613066565b9150509250929050565b60008115159050919050565b6130d0816130bb565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b6130fa816130bb565b811461310557600080fd5b50565b600081359050613117816130f1565b92915050565b60006020828403121561313357613132612fdd565b5b600061314184828501613108565b91505092915050565b61315381613045565b82525050565b600060208201905061316e600083018461314a565b92915050565b6000806040838503121561318b5761318a612fdd565b5b600061319985828601613066565b92505060206131aa85828601613066565b9150509250929050565b6000806000606084860312156131cd576131cc612fdd565b5b60006131db86828701613030565b93505060206131ec86828701613030565b92505060406131fd86828701613066565b9150509250925092565b600060ff82169050919050565b61321d81613207565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253612fdd565b5b600061326284828501613030565b91505092915050565b6000806040838503121561328257613281612fdd565b5b600061329085828601613030565b92505060206132a185828601613108565b9150509250929050565b6132b481613007565b82525050565b60006020820190506132cf60008301846132ab565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61331282612f67565b810181811067ffffffffffffffff82111715613331576133306132da565b5b80604052505050565b6000613344612fd3565b90506133508282613309565b919050565b600067ffffffffffffffff8211156133705761336f6132da565b5b602082029050602081019050919050565b600080fd5b600061339961339484613355565b61333a565b905080838252602082019050602084028301858111156133bc576133bb613381565b5b835b818110156133e557806133d18882613030565b8452602084019350506020810190506133be565b5050509392505050565b600082601f830112613404576134036132d5565b5b8135613414848260208601613386565b91505092915050565b6000806040838503121561343457613433612fdd565b5b600083013567ffffffffffffffff81111561345257613451612fe2565b5b61345e858286016133ef565b925050602061346f85828601613108565b9150509250929050565b600080604083850312156134905761348f612fdd565b5b600061349e85828601613030565b92505060206134af85828601613030565b9150509250929050565b6000819050919050565b60006134de6134d96134d484612fe7565b6134b9565b612fe7565b9050919050565b60006134f0826134c3565b9050919050565b6000613502826134e5565b9050919050565b613512816134f7565b82525050565b600060208201905061352d6000830184613509565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061357a57607f821691505b60208210810361358d5761358c613533565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c9602083612f2c565b91506135d482613593565b602082019050919050565b600060208201905081810360008301526135f8816135bc565b9050919050565b7f6d757374206b656570206d6178205468726573686f6c64206174203125206f7260008201527f206c657373000000000000000000000000000000000000000000000000000000602082015250565b600061365b602583612f2c565b9150613666826135ff565b604082019050919050565b6000602082019050818103600083015261368a8161364e565b9050919050565b7f6d696e205468726573686f6c64206d757374206265206772656174657220746860008201527f616e206f7220657175616c20746f20302e303125000000000000000000000000602082015250565b60006136ed603483612f2c565b91506136f882613691565b604082019050919050565b6000602082019050818103600083015261371c816136e0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156137a95780860481111561378557613784613723565b5b60018516156137945780820291505b80810290506137a285613752565b9450613769565b94509492505050565b6000826137c2576001905061387e565b816137d0576000905061387e565b81600181146137e657600281146137f05761381f565b600191505061387e565b60ff84111561380257613801613723565b5b8360020a91508482111561381957613818613723565b5b5061387e565b5060208310610133831016604e8410600b84101617156138545782820a90508381111561384f5761384e613723565b5b61387e565b613861848484600161375f565b9250905081840481111561387857613877613723565b5b81810290505b9392505050565b600061389082613045565b915061389b83613207565b92506138c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137b2565b905092915050565b60006138db82613045565b91506138e683613045565b92508282026138f481613045565b9150828204841483151761390b5761390a613723565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061396e602883612f2c565b915061397982613912565b604082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b60006139af82613045565b91506139ba83613045565b92508282039050818111156139d2576139d1613723565b5b92915050565b60006139e382613045565b91506139ee83613045565b9250828201905080821115613a0657613a05613723565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a68602283612f2c565b9150613a7382613a0c565b604082019050919050565b60006020820190508181036000830152613a9781613a5b565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613ad4601883612f2c565b9150613adf82613a9e565b602082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b6000604082019050613b1f600083018561314a565b613b2c602083018461314a565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613b69601883612f2c565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613bfb603683612f2c565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b6000604082019050613c4660008301856132ab565b613c53602083018461314a565b9392505050565b600081519050613c69816130f1565b92915050565b600060208284031215613c8557613c84612fdd565b5b6000613c9384828501613c5a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cd682613045565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d0857613d07613723565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d6f602583612f2c565b9150613d7a82613d13565b604082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613e01602b83612f2c565b9150613e0c82613da5565b604082019050919050565b60006020820190508181036000830152613e3081613df4565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e93602783612f2c565b9150613e9e82613e37565b604082019050919050565b60006020820190508181036000830152613ec281613e86565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f25602683612f2c565b9150613f3082613ec9565b604082019050919050565b60006020820190508181036000830152613f5481613f18565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fb7602483612f2c565b9150613fc282613f5b565b604082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614049602283612f2c565b915061405482613fed565b604082019050919050565b600060208201905081810360008301526140788161403c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140db602983612f2c565b91506140e68261407f565b604082019050919050565b6000602082019050818103600083015261410a816140ce565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614147601983612f2c565b915061415282614111565b602082019050919050565b600060208201905081810360008301526141768161413a565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006141b3601383612f2c565b91506141be8261417d565b602082019050919050565b600060208201905081810360008301526141e2816141a6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061421f601983612f2c565b915061422a826141e9565b602082019050919050565b6000602082019050818103600083015261424e81614212565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061428b601a83612f2c565b915061429682614255565b602082019050919050565b600060208201905081810360008301526142ba8161427e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142fb82613045565b915061430683613045565b925082614316576143156142c1565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061437d602583612f2c565b915061438882614321565b604082019050919050565b600060208201905081810360008301526143ac81614370565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061440f602383612f2c565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006144a1602683612f2c565b91506144ac82614445565b604082019050919050565b600060208201905081810360008301526144d081614494565b9050919050565b6000815190506144e681613019565b92915050565b60006020828403121561450257614501612fdd565b5b6000614510848285016144d7565b91505092915050565b6000819050919050565b600061453e61453961453484614519565b6134b9565b613045565b9050919050565b61454e81614523565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458981613007565b82525050565b600061459b8383614580565b60208301905092915050565b6000602082019050919050565b60006145bf82614554565b6145c9818561455f565b93506145d483614570565b8060005b838110156146055781516145ec888261458f565b97506145f7836145a7565b9250506001810190506145d8565b5085935050505092915050565b600060a082019050614627600083018861314a565b6146346020830187614545565b818103604083015261464681866145b4565b905061465560608301856132ab565b614662608083018461314a565b9695505050505050565b600060c08201905061468160008301896132ab565b61468e602083018861314a565b61469b6040830187614545565b6146a86060830186614545565b6146b560808301856132ab565b6146c260a083018461314a565b979650505050505050565b6000815190506146dc8161304f565b92915050565b6000806000606084860312156146fb576146fa612fdd565b5b6000614709868287016146cd565b935050602061471a868287016146cd565b925050604061472b868287016146cd565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061476b601d83612f2c565b915061477682614735565b602082019050919050565b6000602082019050818103600083015261479a8161475e565b9050919050565b600081905092915050565b50565b60006147bc6000836147a1565b91506147c7826147ac565b600082019050919050565b60006147dd826147af565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614843603a83612f2c565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b905091905056fea2646970667358221220645fb364011ead38ca81ca75031cb493ca132d1d6ec24efdfb110370ba7105cf64736f6c63430008130033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c80638a8c523c11610123578063ad3026e4116100ab578063e0eb9cb31161006f578063e0eb9cb3146107ca578063ea2f0b37146107f5578063f2fde38b1461081e578063f887ea4014610847578063fc962edb1461087257610225565b8063ad3026e4146106d3578063beffc7d4146106fc578063c5d32bb214610725578063d256413e14610762578063dd62ed3e1461078d57610225565b8063a1e71b57116100f2578063a1e71b57146105ee578063a40f0ce714610617578063a457c2d71461062e578063a8aa1b311461066b578063a9059cbb1461069657610225565b80638a8c523c146105585780638cd4426d1461056f5780638da5cb5b1461059857806395d89b41146105c357610225565b8063437823ec116101a6578063610e34b911610175578063610e34b91461048557806370a08231146104ae578063715018a6146104eb57806375f0a8741461050257806385141a771461052d57610225565b8063437823ec146103df5780634ada218b146104085780635ae34339146104335780635d098b381461045c57610225565b80631d5dace3116101ed5780631d5dace3146102e657806323b872dd1461030f57806329b8cff31461034c578063313ce5671461037757806339509351146103a257610225565b806306fdde031461022a578063095ea7b3146102555780631340538f1461029257806318160ddd146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61089d565b60405161024c9190612fb1565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061307b565b61092f565b60405161028991906130d6565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061311d565b61094d565b005b3480156102c757600080fd5b506102d06109e6565b6040516102dd9190613159565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190613174565b6109f0565b005b34801561031b57600080fd5b50610336600480360381019061033191906131b4565b610b43565b60405161034391906130d6565b60405180910390f35b34801561035857600080fd5b50610361610c44565b60405161036e9190613159565b60405180910390f35b34801561038357600080fd5b5061038c610c4a565b6040516103999190613223565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c4919061307b565b610c53565b6040516103d691906130d6565b60405180910390f35b3480156103eb57600080fd5b506104066004803603810190610401919061323e565b610cff565b005b34801561041457600080fd5b5061041d610dd6565b60405161042a91906130d6565b60405180910390f35b34801561043f57600080fd5b5061045a6004803603810190610455919061326b565b610de9565b005b34801561046857600080fd5b50610483600480360381019061047e919061323e565b610ec0565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613174565b6110b5565b005b3480156104ba57600080fd5b506104d560048036038101906104d0919061323e565b611182565b6040516104e29190613159565b60405180910390f35b3480156104f757600080fd5b506105006111ca565b005b34801561050e57600080fd5b50610517611252565b60405161052491906132ba565b60405180910390f35b34801561053957600080fd5b50610542611278565b60405161054f91906132ba565b60405180910390f35b34801561056457600080fd5b5061056d61127e565b005b34801561057b57600080fd5b506105966004803603810190610591919061307b565b611367565b005b3480156105a457600080fd5b506105ad6114db565b6040516105ba91906132ba565b60405180910390f35b3480156105cf57600080fd5b506105d8611505565b6040516105e59190612fb1565b60405180910390f35b3480156105fa57600080fd5b506106156004803603810190610610919061341d565b611597565b005b34801561062357600080fd5b5061062c6116a8565b005b34801561063a57600080fd5b506106556004803603810190610650919061307b565b61177a565b60405161066291906130d6565b60405180910390f35b34801561067757600080fd5b5061068061186e565b60405161068d91906132ba565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b8919061307b565b611894565b6040516106ca91906130d6565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613174565b6118ab565b005b34801561070857600080fd5b50610723600480360381019061071e9190613174565b611a38565b005b34801561073157600080fd5b5061074c6004803603810190610747919061323e565b611b05565b60405161075991906130d6565b60405180910390f35b34801561076e57600080fd5b50610777611b25565b6040516107849190613159565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190613479565b611b2b565b6040516107c19190613159565b60405180910390f35b3480156107d657600080fd5b506107df611bb2565b6040516107ec9190613159565b60405180910390f35b34801561080157600080fd5b5061081c6004803603810190610817919061323e565b611bb8565b005b34801561082a57600080fd5b506108456004803603810190610840919061323e565b611c8f565b005b34801561085357600080fd5b5061085c611d86565b6040516108699190613518565b60405180910390f35b34801561087e57600080fd5b50610887611dac565b6040516108949190613159565b60405180910390f35b6060600380546108ac90613562565b80601f01602080910402602001604051908101604052809291908181526020018280546108d890613562565b80156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b5050505050905090565b600061094361093c611db2565b8484611dba565b6001905092915050565b610955611db2565b73ffffffffffffffffffffffffffffffffffffffff166109736114db565b73ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c0906135df565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6000600254905090565b6109f8611db2565b73ffffffffffffffffffffffffffffffffffffffff16610a166114db565b73ffffffffffffffffffffffffffffffffffffffff1614610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a63906135df565b60405180910390fd5b612710821115610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa890613671565b60405180910390fd5b6064811015610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613703565b60405180910390fd5b610afd610c4a565b600a610b099190613885565b82610b1491906138d0565b600881905550610b22610c4a565b600a610b2e9190613885565b81610b3991906138d0565b6009819055505050565b6000610b50848484611f83565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b9b611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290613984565b60405180910390fd5b610c3885610c27611db2565b8584610c3391906139a4565b611dba565b60019150509392505050565b600b5481565b60006012905090565b6000610cf5610c60611db2565b848460016000610c6e611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf091906139d8565b611dba565b6001905092915050565b610d07611db2565b73ffffffffffffffffffffffffffffffffffffffff16610d256114db565b73ffffffffffffffffffffffffffffffffffffffff1614610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d72906135df565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760169054906101000a900460ff1681565b610df1611db2565b73ffffffffffffffffffffffffffffffffffffffff16610e0f6114db565b73ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906135df565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ec8611db2565b73ffffffffffffffffffffffffffffffffffffffff16610ee66114db565b73ffffffffffffffffffffffffffffffffffffffff1614610f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f33906135df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa290613a7e565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090613aea565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110bd611db2565b73ffffffffffffffffffffffffffffffffffffffff166110db6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611128906135df565b60405180910390fd5b81600d6000018190555080600d600101819055507fa2b219a42aa557965901397e42601390282bb6828cabbd7675dca50ba6aa62ca8282604051611176929190613b0a565b60405180910390a15050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111d2611db2565b73ffffffffffffffffffffffffffffffffffffffff166111f06114db565b73ffffffffffffffffffffffffffffffffffffffff1614611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d906135df565b60405180910390fd5b6112506000612636565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b611286611db2565b73ffffffffffffffffffffffffffffffffffffffff166112a46114db565b73ffffffffffffffffffffffffffffffffffffffff16146112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f1906135df565b60405180910390fd5b600760169054906101000a900460ff161561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190613b7f565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b61136f611db2565b73ffffffffffffffffffffffffffffffffffffffff1661138d6114db565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906135df565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890613c11565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114756114db565b836040518363ffffffff1660e01b8152600401611493929190613c31565b6020604051808303816000875af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190613c6f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461151490613562565b80601f016020809104026020016040519081016040528092919081815260200182805461154090613562565b801561158d5780601f106115625761010080835404028352916020019161158d565b820191906000526020600020905b81548152906001019060200180831161157057829003601f168201915b5050505050905090565b61159f611db2565b73ffffffffffffffffffffffffffffffffffffffff166115bd6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a906135df565b60405180910390fd5b60005b82518110156116a357816014600085848151811061163757611636613c9c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061169b90613ccb565b915050611616565b505050565b6116b0611db2565b73ffffffffffffffffffffffffffffffffffffffff166116ce6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b906135df565b60405180910390fd5b60004790506117316114db565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611776573d6000803e3d6000fd5b5050565b60008060016000611789611db2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90613d85565b60405180910390fd5b611863611851611db2565b85858461185e91906139a4565b611dba565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118a1338484611f83565b6001905092915050565b6118b3611db2565b73ffffffffffffffffffffffffffffffffffffffff166118d16114db565b73ffffffffffffffffffffffffffffffffffffffff1614611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e906135df565b60405180910390fd5b61192f610c4a565b600a61193b9190613885565b8261194691906138d0565b600b81905550611954610c4a565b600a6119609190613885565b8161196b91906138d0565b600a819055506103e88210156119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad90613e17565b60405180910390fd5b6103e88110156119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613ea9565b60405180910390fd5b7f202f4712f0dae21d708451caa16ed4b41cb5c9974ab3d34d1f1dc4dfc5a222db8282604051611a2c929190613b0a565b60405180910390a15050565b611a40611db2565b73ffffffffffffffffffffffffffffffffffffffff16611a5e6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906135df565b60405180910390fd5b81600f6000018190555080600f600101819055507f7873124e0d91bc71776e2961704366640b879893d05157d7bfa606dd9e58227d8282604051611af9929190613b0a565b60405180910390a15050565b60136020528060005260406000206000915054906101000a900460ff1681565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b611bc0611db2565b73ffffffffffffffffffffffffffffffffffffffff16611bde6114db565b73ffffffffffffffffffffffffffffffffffffffff1614611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b906135df565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c97611db2565b73ffffffffffffffffffffffffffffffffffffffff16611cb56114db565b73ffffffffffffffffffffffffffffffffffffffff1614611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d02906135df565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7190613f3b565b60405180910390fd5b611d8381612636565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090613fcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8f9061405f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f769190613159565b60405180910390a3505050565b60008111611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906140f1565b60405180910390fd5b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561206a5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a09061415d565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561214d5750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121a257600760169054906101000a900460ff166121a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612198906141c9565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561224d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156122a35750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561234657600a548111156122ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e490614235565b60405180910390fd5b600b54816122fa84611182565b61230491906139d8565b1115612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c906142a1565b60405180910390fd5b5b6000806000612353612f07565b600760149054906101000a900460ff16806123b75750601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061240b5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124195760009150612547565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124b157600f60000154600f6001015461248491906139d8565b9350839250600f604051806040016040529081600082015481526020016001820154815250509050612546565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461254557600d60000154600d6001015461251c91906139d8565b9350839250600d6040518060400160405290816000820154815260200160018201548152505090505b5b5b6064838661255591906138d0565b61255f91906142f0565b9150600760159054906101000a900460ff1680156125cb5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156125db576125da84826126fc565b5b6125f1878784886125ec91906139a4565b61287e565b600082111561262d57600084111561262c5760006064858761261391906138d0565b61261d91906142f0565b905061262a88308361287e565b505b5b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661287a576001600760146101000a81548160ff021916908315150217905550600082031561285e57600061273f30611182565b9050600954811061285c57600060028461275991906138d0565b905060008184602001518461276e91906138d0565b61277891906142f0565b9050600047905061278884612af0565b6000814761279691906139a4565b905060008660200151856127aa91906139a4565b826127b591906142f0565b905060008760200151826127c991906138d0565b905060008111156127df576127de8582612d33565b5b600088600001516002846127f391906138d0565b6127fd91906138d0565b905060008111156128545761285381600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e1390919063ffffffff16565b5b505050505050505b505b6000600760146101000a81548160ff0219169083151502179055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e490614393565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361295c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295390614425565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d9906144b7565b60405180910390fd5b81816129ee91906139a4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a7e91906139d8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ae29190613159565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0d57612b0c6132da565b5b604051908082528060200260200182016040528015612b3b5781602001602082028036833780820191505090505b5090503081600081518110612b5357612b52613c9c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e91906144ec565b81600181518110612c3257612c31613c9c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dba565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cfd959493929190614612565b600060405180830381600087803b158015612d1757600080fd5b505af1158015612d2b573d6000803e3d6000fd5b505050505050565b612d6030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611dba565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612dc99695949392919061466c565b60606040518083038185885af1158015612de7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e0c91906146e2565b5050505050565b80471015612e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4d90614781565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612e7c906147d2565b60006040518083038185875af1925050503d8060008114612eb9576040519150601f19603f3d011682016040523d82523d6000602084013e612ebe565b606091505b5050905080612f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ef990614859565b60405180910390fd5b505050565b604051806040016040528060008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f5b578082015181840152602081019050612f40565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f8382612f21565b612f8d8185612f2c565b9350612f9d818560208601612f3d565b612fa681612f67565b840191505092915050565b60006020820190508181036000830152612fcb8184612f78565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301282612fe7565b9050919050565b61302281613007565b811461302d57600080fd5b50565b60008135905061303f81613019565b92915050565b6000819050919050565b61305881613045565b811461306357600080fd5b50565b6000813590506130758161304f565b92915050565b6000806040838503121561309257613091612fdd565b5b60006130a085828601613030565b92505060206130b185828601613066565b9150509250929050565b60008115159050919050565b6130d0816130bb565b82525050565b60006020820190506130eb60008301846130c7565b92915050565b6130fa816130bb565b811461310557600080fd5b50565b600081359050613117816130f1565b92915050565b60006020828403121561313357613132612fdd565b5b600061314184828501613108565b91505092915050565b61315381613045565b82525050565b600060208201905061316e600083018461314a565b92915050565b6000806040838503121561318b5761318a612fdd565b5b600061319985828601613066565b92505060206131aa85828601613066565b9150509250929050565b6000806000606084860312156131cd576131cc612fdd565b5b60006131db86828701613030565b93505060206131ec86828701613030565b92505060406131fd86828701613066565b9150509250925092565b600060ff82169050919050565b61321d81613207565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253612fdd565b5b600061326284828501613030565b91505092915050565b6000806040838503121561328257613281612fdd565b5b600061329085828601613030565b92505060206132a185828601613108565b9150509250929050565b6132b481613007565b82525050565b60006020820190506132cf60008301846132ab565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61331282612f67565b810181811067ffffffffffffffff82111715613331576133306132da565b5b80604052505050565b6000613344612fd3565b90506133508282613309565b919050565b600067ffffffffffffffff8211156133705761336f6132da565b5b602082029050602081019050919050565b600080fd5b600061339961339484613355565b61333a565b905080838252602082019050602084028301858111156133bc576133bb613381565b5b835b818110156133e557806133d18882613030565b8452602084019350506020810190506133be565b5050509392505050565b600082601f830112613404576134036132d5565b5b8135613414848260208601613386565b91505092915050565b6000806040838503121561343457613433612fdd565b5b600083013567ffffffffffffffff81111561345257613451612fe2565b5b61345e858286016133ef565b925050602061346f85828601613108565b9150509250929050565b600080604083850312156134905761348f612fdd565b5b600061349e85828601613030565b92505060206134af85828601613030565b9150509250929050565b6000819050919050565b60006134de6134d96134d484612fe7565b6134b9565b612fe7565b9050919050565b60006134f0826134c3565b9050919050565b6000613502826134e5565b9050919050565b613512816134f7565b82525050565b600060208201905061352d6000830184613509565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061357a57607f821691505b60208210810361358d5761358c613533565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135c9602083612f2c565b91506135d482613593565b602082019050919050565b600060208201905081810360008301526135f8816135bc565b9050919050565b7f6d757374206b656570206d6178205468726573686f6c64206174203125206f7260008201527f206c657373000000000000000000000000000000000000000000000000000000602082015250565b600061365b602583612f2c565b9150613666826135ff565b604082019050919050565b6000602082019050818103600083015261368a8161364e565b9050919050565b7f6d696e205468726573686f6c64206d757374206265206772656174657220746860008201527f616e206f7220657175616c20746f20302e303125000000000000000000000000602082015250565b60006136ed603483612f2c565b91506136f882613691565b604082019050919050565b6000602082019050818103600083015261371c816136e0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156137a95780860481111561378557613784613723565b5b60018516156137945780820291505b80810290506137a285613752565b9450613769565b94509492505050565b6000826137c2576001905061387e565b816137d0576000905061387e565b81600181146137e657600281146137f05761381f565b600191505061387e565b60ff84111561380257613801613723565b5b8360020a91508482111561381957613818613723565b5b5061387e565b5060208310610133831016604e8410600b84101617156138545782820a90508381111561384f5761384e613723565b5b61387e565b613861848484600161375f565b9250905081840481111561387857613877613723565b5b81810290505b9392505050565b600061389082613045565b915061389b83613207565b92506138c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846137b2565b905092915050565b60006138db82613045565b91506138e683613045565b92508282026138f481613045565b9150828204841483151761390b5761390a613723565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061396e602883612f2c565b915061397982613912565b604082019050919050565b6000602082019050818103600083015261399d81613961565b9050919050565b60006139af82613045565b91506139ba83613045565b92508282039050818111156139d2576139d1613723565b5b92915050565b60006139e382613045565b91506139ee83613045565b9250828201905080821115613a0657613a05613723565b5b92915050565b7f46656520416464726573732063616e6e6f74206265207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a68602283612f2c565b9150613a7382613a0c565b604082019050919050565b60006020820190508181036000830152613a9781613a5b565b9050919050565b7f46656520416464726573732063616e6e6f742062652043410000000000000000600082015250565b6000613ad4601883612f2c565b9150613adf82613a9e565b602082019050919050565b60006020820190508181036000830152613b0381613ac7565b9050919050565b6000604082019050613b1f600083018561314a565b613b2c602083018461314a565b9392505050565b7f43616e6e6f742072652d656e61626c652074726164696e670000000000000000600082015250565b6000613b69601883612f2c565b9150613b7482613b33565b602082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613bfb603683612f2c565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b6000604082019050613c4660008301856132ab565b613c53602083018461314a565b9392505050565b600081519050613c69816130f1565b92915050565b600060208284031215613c8557613c84612fdd565b5b6000613c9384828501613c5a565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613cd682613045565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d0857613d07613723565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d6f602583612f2c565b9150613d7a82613d13565b604082019050919050565b60006020820190508181036000830152613d9e81613d62565b9050919050565b7f43616e6e6f7420736574204d617857616c6c657420616d6f756e74206c6f776560008201527f72207468656e20302e3125000000000000000000000000000000000000000000602082015250565b6000613e01602b83612f2c565b9150613e0c82613da5565b604082019050919050565b60006020820190508181036000830152613e3081613df4565b9050919050565b7f43616e6e6f7420736574204d6178547820616d6f756e74206c6f77657220746860008201527f656e20302e312500000000000000000000000000000000000000000000000000602082015250565b6000613e93602783612f2c565b9150613e9e82613e37565b604082019050919050565b60006020820190508181036000830152613ec281613e86565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f25602683612f2c565b9150613f3082613ec9565b604082019050919050565b60006020820190508181036000830152613f5481613f18565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613fb7602483612f2c565b9150613fc282613f5b565b604082019050919050565b60006020820190508181036000830152613fe681613faa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614049602283612f2c565b915061405482613fed565b604082019050919050565b600060208201905081810360008301526140788161403c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006140db602983612f2c565b91506140e68261407f565b604082019050919050565b6000602082019050818103600083015261410a816140ce565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000614147601983612f2c565b915061415282614111565b602082019050919050565b600060208201905081810360008301526141768161413a565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006141b3601383612f2c565b91506141be8261417d565b602082019050919050565b600060208201905081810360008301526141e2816141a6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061421f601983612f2c565b915061422a826141e9565b602082019050919050565b6000602082019050818103600083015261424e81614212565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061428b601a83612f2c565b915061429682614255565b602082019050919050565b600060208201905081810360008301526142ba8161427e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142fb82613045565b915061430683613045565b925082614316576143156142c1565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061437d602583612f2c565b915061438882614321565b604082019050919050565b600060208201905081810360008301526143ac81614370565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061440f602383612f2c565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006144a1602683612f2c565b91506144ac82614445565b604082019050919050565b600060208201905081810360008301526144d081614494565b9050919050565b6000815190506144e681613019565b92915050565b60006020828403121561450257614501612fdd565b5b6000614510848285016144d7565b91505092915050565b6000819050919050565b600061453e61453961453484614519565b6134b9565b613045565b9050919050565b61454e81614523565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61458981613007565b82525050565b600061459b8383614580565b60208301905092915050565b6000602082019050919050565b60006145bf82614554565b6145c9818561455f565b93506145d483614570565b8060005b838110156146055781516145ec888261458f565b97506145f7836145a7565b9250506001810190506145d8565b5085935050505092915050565b600060a082019050614627600083018861314a565b6146346020830187614545565b818103604083015261464681866145b4565b905061465560608301856132ab565b614662608083018461314a565b9695505050505050565b600060c08201905061468160008301896132ab565b61468e602083018861314a565b61469b6040830187614545565b6146a86060830186614545565b6146b560808301856132ab565b6146c260a083018461314a565b979650505050505050565b6000815190506146dc8161304f565b92915050565b6000806000606084860312156146fb576146fa612fdd565b5b6000614709868287016146cd565b935050602061471a868287016146cd565b925050604061472b868287016146cd565b9150509250925092565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061476b601d83612f2c565b915061477682614735565b602082019050919050565b6000602082019050818103600083015261479a8161475e565b9050919050565b600081905092915050565b50565b60006147bc6000836147a1565b91506147c7826147ac565b600082019050919050565b60006147dd826147af565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614843603a83612f2c565b915061484e826147e7565b604082019050919050565b6000602082019050818103600083015261487281614836565b905091905056fea2646970667358221220645fb364011ead38ca81ca75031cb493ca132d1d6ec24efdfb110370ba7105cf64736f6c63430008130033
Deployed Bytecode Sourcemap
12514:10670:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2713:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14497:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20297:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3833;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20418:371;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14698:485;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12960:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3675:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15191:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22488:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12737:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22360:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21829:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20801:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4004:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11121:94;;;;;;;;;;;;;:::i;:::-;;13026:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13108:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21671:147;;;;;;;;;;;;;:::i;:::-;;22888:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10898:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2932:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22144:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22715:165;;;;;;;;;;;;;:::i;:::-;;15497:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12626:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15914:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21270:389;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21029:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13510:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12902:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4673:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13367:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22602:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11223:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12598:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13433:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2713:100;2767:13;2800:5;2793:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2713:100;:::o;14497:193::-;14599:4;14621:39;14630:12;:10;:12::i;:::-;14644:7;14653:6;14621:8;:39::i;:::-;14678:4;14671:11;;14497:193;;;;:::o;20297:108::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20392:5:::1;20371:18;;:26;;;;;;;;;;;;;;;;;;20297:108:::0;:::o;3833:::-;3894:7;3921:12;;3914:19;;3833:108;:::o;20418:371::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20535:5:::1;20521:10;:19;;20513:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20616:3;20602:10;:17;;20594:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;20719:10;:8;:10::i;:::-;20715:2;:14;;;;:::i;:::-;20702:10;:27;;;;:::i;:::-;20687:12;:42;;;;20771:10;:8;:10::i;:::-;20767:2;:14;;;;:::i;:::-;20754:10;:27;;;;:::i;:::-;20740:11;:41;;;;20418:371:::0;;:::o;14698:485::-;14830:4;14847:36;14857:6;14865:9;14876:6;14847:9;:36::i;:::-;14896:24;14923:11;:19;14935:6;14923:19;;;;;;;;;;;;;;;:33;14943:12;:10;:12::i;:::-;14923:33;;;;;;;;;;;;;;;;14896:60;;15009:6;14989:16;:26;;14967:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;15094:57;15103:6;15111:12;:10;:12::i;:::-;15144:6;15125:16;:25;;;;:::i;:::-;15094:8;:57::i;:::-;15171:4;15164:11;;;14698:485;;;;;:::o;12960:47::-;;;;:::o;3675:93::-;3733:5;3758:2;3751:9;;3675:93;:::o;15191:298::-;15307:4;15329:130;15352:12;:10;:12::i;:::-;15379:7;15438:10;15401:11;:25;15413:12;:10;:12::i;:::-;15401:25;;;;;;;;;;;;;;;:34;15427:7;15401:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15329:8;:130::i;:::-;15477:4;15470:11;;15191:298;;;;:::o;22488:106::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22582:4:::1;22560:9;:19;22570:8;22560:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;22488:106:::0;:::o;12737:34::-;;;;;;;;;;;;;:::o;22360:117::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22464:5:::1;22440:12;:21;22453:7;22440:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22360:117:::0;;:::o;21829:305::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21935:1:::1;21914:23;;:9;:23;;::::0;21906:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22016:4;21995:26;;:9;:26;;::::0;21987:63:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22084:4;22061:9;:20;22071:9;22061:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22117:9;22099:15;;:27;;;;;;;;;;;;;;;;;;21829:305:::0;:::o;20801:220::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20912:10:::1;20894:5;:15;;:28;;;;20951:10;20933:5;:15;;:28;;;;20974:39;20990:10;21002;20974:39;;;;;;;:::i;:::-;;;;;;;;20801:220:::0;;:::o;4004:177::-;4123:7;4155:9;:18;4165:7;4155:18;;;;;;;;;;;;;;;;4148:25;;4004:177;;;:::o;11121:94::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11186:21:::1;11204:1;11186:9;:21::i;:::-;11121:94::o:0;13026:75::-;;;;;;;;;;;;;:::o;13108:79::-;13145:42;13108:79;:::o;21671:147::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21735:14:::1;;;;;;;;;;;21734:15;21726:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;21806:4;21789:14;;:21;;;;;;;;;;;;;;;;;;21671:147::o:0;22888:238::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23001:4:::1;22981:25;;:8;:25;;::::0;22973:92:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23083:8;23076:25;;;23102:7;:5;:7::i;:::-;23111:6;23076:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22888:238:::0;;:::o;10898:87::-;10944:7;10971:6;;;;;;;;;;;10964:13;;10898:87;:::o;2932:104::-;2988:13;3021:7;3014:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:104;:::o;22144:208::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22244:9:::1;22239:106;22263:8;:15;22259:1;:19;22239:106;;;22328:5;22300:12;:25;22313:8;22322:1;22313:11;;;;;;;;:::i;:::-;;;;;;;;22300:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;22280:3;;;;;:::i;:::-;;;;22239:106;;;;22144:208:::0;;:::o;22715:165::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22766:26:::1;22795:21;22766:50;;22835:7;:5;:7::i;:::-;22827:25;;:45;22853:18;22827:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22755:125;22715:165::o:0;15497:409::-;15618:4;15640:24;15667:11;:25;15679:12;:10;:12::i;:::-;15667:25;;;;;;;;;;;;;;;:34;15693:7;15667:34;;;;;;;;;;;;;;;;15640:61;;15740:15;15720:16;:35;;15712:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;15807:67;15816:12;:10;:12::i;:::-;15830:7;15858:15;15839:16;:34;;;;:::i;:::-;15807:8;:67::i;:::-;15894:4;15887:11;;;15497:409;;;;:::o;12626:19::-;;;;;;;;;;;;;:::o;15914:197::-;16019:4;16041:40;16051:10;16063:9;16074:6;16041:9;:40::i;:::-;16099:4;16092:11;;15914:197;;;;:::o;21270:389::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21392:10:::1;:8;:10::i;:::-;21388:2;:14;;;;:::i;:::-;21375:10;:27;;;;:::i;:::-;21359:13;:43;;;;21441:10;:8;:10::i;:::-;21437:2;:14;;;;:::i;:::-;21428:6;:23;;;;:::i;:::-;21414:11;:37;;;;21481:4;21467:10;:18;;21458:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21559:4;21549:6;:14;;21540:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21619:32;21632:10;21644:6;21619:32;;;;;;;:::i;:::-;;;;;;;;21270:389:::0;;:::o;21029:229::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21145:10:::1;21123:9;:19;;:32;;;;21188:10;21166:9;:19;;:32;;;;21210:40;21227:10;21239;21210:40;;;;;;;:::i;:::-;;;;;;;;21029:229:::0;;:::o;13510:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;12902:45::-;;;;:::o;4673:201::-;4807:7;4839:11;:18;4851:5;4839:18;;;;;;;;;;;;;;;:27;4858:7;4839:27;;;;;;;;;;;;;;;;4832:34;;4673:201;;;;:::o;13367:59::-;;;;:::o;22602:105::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22694:5:::1;22672:9;:19;22682:8;22672:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22602:105:::0;:::o;11223:229::-;11044:12;:10;:12::i;:::-;11033:23;;:7;:5;:7::i;:::-;:23;;;11025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11346:1:::1;11326:22;;:8;:22;;::::0;11304:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11425:19;11435:8;11425:9;:19::i;:::-;11223:229:::0;:::o;12598:21::-;;;;;;;;;;;;;:::o;13433:68::-;;;;:::o;356:98::-;409:7;436:10;429:17;;356:98;:::o;9834:380::-;9987:1;9970:19;;:5;:19;;;9962:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10068:1;10049:21;;:7;:21;;;10041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10152:6;10122:11;:18;10134:5;10122:18;;;;;;;;;;;;;;;:27;10141:7;10122:27;;;;;;;;;;;;;;;:36;;;;10190:7;10174:32;;10183:5;10174:32;;;10199:6;10174:32;;;;;;:::i;:::-;;;;;;;;9834:380;;;:::o;16119:1985::-;16235:1;16226:6;:10;16218:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16303:12;:20;16316:6;16303:20;;;;;;;;;;;;;;;;;;;;;;;;;16302:21;:49;;;;;16328:12;:23;16341:9;16328:23;;;;;;;;;;;;;;;;;;;;;;;;;16327:24;16302:49;16294:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;16427:9;:17;16437:6;16427:17;;;;;;;;;;;;;;;;;;;;;;;;;16426:18;:43;;;;;16449:9;:20;16459:9;16449:20;;;;;;;;;;;;;;;;;;;;;;;;;16448:21;16426:43;16422:122;;;16494:14;;;;;;;;;;;16486:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16422:122;16578:4;;;;;;;;;;;16568:14;;:6;:14;;;:46;;;;;16607:6;;;;;;;;;;;16586:28;;:9;:28;;;;16568:46;:71;;;;;16619:9;:20;16629:9;16619:20;;;;;;;;;;;;;;;;;;;;;;;;;16618:21;16568:71;16564:294;;;16679:11;;16669:6;:21;;16661:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16780:13;;16770:6;16747:20;16757:9;16747;:20::i;:::-;:29;;;;:::i;:::-;:46;;16739:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16564:294;16868:15;16894:14;16919:11;16941:25;;:::i;:::-;17054:10;;;;;;;;;;;:31;;;;17068:9;:17;17078:6;17068:17;;;;;;;;;;;;;;;;;;;;;;;;;17054:31;:55;;;;17089:9;:20;17099:9;17089:20;;;;;;;;;;;;;;;;;;;;;;;;;17054:55;17050:464;;;17130:1;17124:7;;17050:464;;;17195:4;;;;;;;;;;;17182:17;;:9;:17;;;17178:336;;17248:9;:19;;;17226:9;:19;;;:41;;;;:::i;:::-;17216:51;;17291:7;17282:16;;17328:9;17313:24;;;;;;;;;;;;;;;;;;;;;;;;;;;17178:336;;;17372:4;;;;;;;;;;;17359:17;;:9;:17;;;17355:159;;17421:5;:15;;;17403:5;:15;;;:33;;;;:::i;:::-;17393:43;;17460:7;17451:16;;17497:5;17482:20;;;;;;;;;;;;;;;;;;;;;;;;;;;17355:159;17178:336;17050:464;17553:3;17543:6;17534;:15;;;;:::i;:::-;17533:23;;;;:::i;:::-;17527:29;;17670:18;;;;;;;;;;;:36;;;;;17702:4;;;;;;;;;;;17692:14;;:6;:14;;;;17670:36;17666:85;;;17721:30;17729:7;17738:12;17721:7;:30::i;:::-;17666:85;17793:48;17809:6;17817:9;17837:3;17828:6;:12;;;;:::i;:::-;17793:15;:48::i;:::-;17862:1;17856:3;:7;17852:247;;;17938:1;17928:7;:11;17924:164;;;17960:17;18001:3;17990:7;17981:6;:16;;;;:::i;:::-;17980:24;;;;:::i;:::-;17960:44;;18023:49;18039:6;18055:4;18062:9;18023:15;:49::i;:::-;17941:147;17924:164;17852:247;16207:1897;;;;16119:1985;;;:::o;11460:173::-;11516:16;11535:6;;;;;;;;;;;11516:25;;11561:8;11552:6;;:17;;;;;;;;;;;;;;;;;;11616:8;11585:40;;11606:8;11585:40;;;;;;;;;;;;11505:128;11460:173;:::o;18112:1282::-;13859:10;;;;;;;;;;;13854:110;;13899:4;13886:10;;:17;;;;;;;;;;;;;;;;;;18216:1:::1;18205:7;:12:::0;18201:51;18234:7:::1;18201:51;18264:23;18290:24;18308:4;18290:9;:24::i;:::-;18264:50;;18348:11;;18329:15;:30;18325:1062;;18499:19;18531:1;18521:7;:11;;;;:::i;:::-;18499:33;;18547:32;18624:11;18601:9;:19;;;18583:15;:37;;;;:::i;:::-;18582:53;;;;:::i;:::-;18547:88;;18650:22;18675:21;18650:46;;18713:33;18730:15;18713:16;:33::i;:::-;18763:20;18810:14;18786:21;:38;;;;:::i;:::-;18763:61;;18839:19;18891:9;:19;;;18877:11;:33;;;;:::i;:::-;18861:12;:50;;;;:::i;:::-;18839:72;;18926:29;18972:9;:19;;;18958:11;:33;;;;:::i;:::-;18926:65;;19036:1;19012:21;:25;19008:172;;;19103:61;19116:24;19142:21;19103:12;:61::i;:::-;19008:172;19196:20;19237:9;:19;;;19233:1;19219:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;19196:60;;19290:1;19275:12;:16;19271:105;;;19312:48;19347:12;19320:15;;;;;;;;;;;19312:34;;;;:48;;;;:::i;:::-;19271:105;18361:1026;;;;;;;18325:1062;18190:1204;13918:1;13947:5:::0;13934:10;;:18;;;;;;;;;;;;;;;;;;13854:110;18112:1282;;:::o;8351:615::-;8509:1;8491:20;;:6;:20;;;8483:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8593:1;8572:23;;:9;:23;;;8564:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8648:21;8672:9;:17;8682:6;8672:17;;;;;;;;;;;;;;;;8648:41;;8739:6;8722:13;:23;;8700:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8858:6;8842:13;:22;;;;:::i;:::-;8822:9;:17;8832:6;8822:17;;;;;;;;;;;;;;;:42;;;;8899:6;8875:9;:20;8885:9;8875:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8940:9;8923:35;;8932:6;8923:35;;;8951:6;8923:35;;;;;;:::i;:::-;;;;;;;;8472:494;8351:615;;;:::o;19402:448::-;19468:21;19506:1;19492:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19468:40;;19537:4;19519;19524:1;19519:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19563:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19553:4;19558:1;19553:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19589:53;19606:4;19621:6;;;;;;;;;;;19630:11;19589:8;:53::i;:::-;19655:6;;;;;;;;;;;:57;;;19727:11;19753:1;19769:4;19796;19816:15;19655:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19457:393;19402:448;:::o;19858:431::-;19939:53;19956:4;19971:6;;;;;;;;;;;19980:11;19939:8;:53::i;:::-;20035:6;;;;;;;;;;;:22;;;20065:9;20098:4;20118:11;20144:1;20187;13145:42;20255:15;20035:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19858:431;;:::o;10244:391::-;10373:6;10348:21;:31;;10326:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10450:12;10468:9;:14;;10490:6;10468:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10449:52;;;10534:7;10512:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;10315:320;10244:391;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:474::-;4456:6;4464;4513:2;4501:9;4492:7;4488:23;4484:32;4481:119;;;4519:79;;:::i;:::-;4481:119;4639:1;4664:53;4709:7;4700:6;4689:9;4685:22;4664:53;:::i;:::-;4654:63;;4610:117;4766:2;4792:53;4837:7;4828:6;4817:9;4813:22;4792:53;:::i;:::-;4782:63;;4737:118;4388:474;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:468::-;6323:6;6331;6380:2;6368:9;6359:7;6355:23;6351:32;6348:119;;;6386:79;;:::i;:::-;6348:119;6506:1;6531:53;6576:7;6567:6;6556:9;6552:22;6531:53;:::i;:::-;6521:63;;6477:117;6633:2;6659:50;6701:7;6692:6;6681:9;6677:22;6659:50;:::i;:::-;6649:60;;6604:115;6258:468;;;;;:::o;6732:118::-;6819:24;6837:5;6819:24;:::i;:::-;6814:3;6807:37;6732:118;;:::o;6856:222::-;6949:4;6987:2;6976:9;6972:18;6964:26;;7000:71;7068:1;7057:9;7053:17;7044:6;7000:71;:::i;:::-;6856:222;;;;:::o;7084:117::-;7193:1;7190;7183:12;7207:180;7255:77;7252:1;7245:88;7352:4;7349:1;7342:15;7376:4;7373:1;7366:15;7393:281;7476:27;7498:4;7476:27;:::i;:::-;7468:6;7464:40;7606:6;7594:10;7591:22;7570:18;7558:10;7555:34;7552:62;7549:88;;;7617:18;;:::i;:::-;7549:88;7657:10;7653:2;7646:22;7436:238;7393:281;;:::o;7680:129::-;7714:6;7741:20;;:::i;:::-;7731:30;;7770:33;7798:4;7790:6;7770:33;:::i;:::-;7680:129;;;:::o;7815:311::-;7892:4;7982:18;7974:6;7971:30;7968:56;;;8004:18;;:::i;:::-;7968:56;8054:4;8046:6;8042:17;8034:25;;8114:4;8108;8104:15;8096:23;;7815:311;;;:::o;8132:117::-;8241:1;8238;8231:12;8272:710;8368:5;8393:81;8409:64;8466:6;8409:64;:::i;:::-;8393:81;:::i;:::-;8384:90;;8494:5;8523:6;8516:5;8509:21;8557:4;8550:5;8546:16;8539:23;;8610:4;8602:6;8598:17;8590:6;8586:30;8639:3;8631:6;8628:15;8625:122;;;8658:79;;:::i;:::-;8625:122;8773:6;8756:220;8790:6;8785:3;8782:15;8756:220;;;8865:3;8894:37;8927:3;8915:10;8894:37;:::i;:::-;8889:3;8882:50;8961:4;8956:3;8952:14;8945:21;;8832:144;8816:4;8811:3;8807:14;8800:21;;8756:220;;;8760:21;8374:608;;8272:710;;;;;:::o;9005:370::-;9076:5;9125:3;9118:4;9110:6;9106:17;9102:27;9092:122;;9133:79;;:::i;:::-;9092:122;9250:6;9237:20;9275:94;9365:3;9357:6;9350:4;9342:6;9338:17;9275:94;:::i;:::-;9266:103;;9082:293;9005:370;;;;:::o;9381:678::-;9471:6;9479;9528:2;9516:9;9507:7;9503:23;9499:32;9496:119;;;9534:79;;:::i;:::-;9496:119;9682:1;9671:9;9667:17;9654:31;9712:18;9704:6;9701:30;9698:117;;;9734:79;;:::i;:::-;9698:117;9839:78;9909:7;9900:6;9889:9;9885:22;9839:78;:::i;:::-;9829:88;;9625:302;9966:2;9992:50;10034:7;10025:6;10014:9;10010:22;9992:50;:::i;:::-;9982:60;;9937:115;9381:678;;;;;:::o;10065:474::-;10133:6;10141;10190:2;10178:9;10169:7;10165:23;10161:32;10158:119;;;10196:79;;:::i;:::-;10158:119;10316:1;10341:53;10386:7;10377:6;10366:9;10362:22;10341:53;:::i;:::-;10331:63;;10287:117;10443:2;10469:53;10514:7;10505:6;10494:9;10490:22;10469:53;:::i;:::-;10459:63;;10414:118;10065:474;;;;;:::o;10545:60::-;10573:3;10594:5;10587:12;;10545:60;;;:::o;10611:142::-;10661:9;10694:53;10712:34;10721:24;10739:5;10721:24;:::i;:::-;10712:34;:::i;:::-;10694:53;:::i;:::-;10681:66;;10611:142;;;:::o;10759:126::-;10809:9;10842:37;10873:5;10842:37;:::i;:::-;10829:50;;10759:126;;;:::o;10891:141::-;10956:9;10989:37;11020:5;10989:37;:::i;:::-;10976:50;;10891:141;;;:::o;11038:161::-;11140:52;11186:5;11140:52;:::i;:::-;11135:3;11128:65;11038:161;;:::o;11205:252::-;11313:4;11351:2;11340:9;11336:18;11328:26;;11364:86;11447:1;11436:9;11432:17;11423:6;11364:86;:::i;:::-;11205:252;;;;:::o;11463:180::-;11511:77;11508:1;11501:88;11608:4;11605:1;11598:15;11632:4;11629:1;11622:15;11649:320;11693:6;11730:1;11724:4;11720:12;11710:22;;11777:1;11771:4;11767:12;11798:18;11788:81;;11854:4;11846:6;11842:17;11832:27;;11788:81;11916:2;11908:6;11905:14;11885:18;11882:38;11879:84;;11935:18;;:::i;:::-;11879:84;11700:269;11649:320;;;:::o;11975:182::-;12115:34;12111:1;12103:6;12099:14;12092:58;11975:182;:::o;12163:366::-;12305:3;12326:67;12390:2;12385:3;12326:67;:::i;:::-;12319:74;;12402:93;12491:3;12402:93;:::i;:::-;12520:2;12515:3;12511:12;12504:19;;12163:366;;;:::o;12535:419::-;12701:4;12739:2;12728:9;12724:18;12716:26;;12788:9;12782:4;12778:20;12774:1;12763:9;12759:17;12752:47;12816:131;12942:4;12816:131;:::i;:::-;12808:139;;12535:419;;;:::o;12960:224::-;13100:34;13096:1;13088:6;13084:14;13077:58;13169:7;13164:2;13156:6;13152:15;13145:32;12960:224;:::o;13190:366::-;13332:3;13353:67;13417:2;13412:3;13353:67;:::i;:::-;13346:74;;13429:93;13518:3;13429:93;:::i;:::-;13547:2;13542:3;13538:12;13531:19;;13190:366;;;:::o;13562:419::-;13728:4;13766:2;13755:9;13751:18;13743:26;;13815:9;13809:4;13805:20;13801:1;13790:9;13786:17;13779:47;13843:131;13969:4;13843:131;:::i;:::-;13835:139;;13562:419;;;:::o;13987:239::-;14127:34;14123:1;14115:6;14111:14;14104:58;14196:22;14191:2;14183:6;14179:15;14172:47;13987:239;:::o;14232:366::-;14374:3;14395:67;14459:2;14454:3;14395:67;:::i;:::-;14388:74;;14471:93;14560:3;14471:93;:::i;:::-;14589:2;14584:3;14580:12;14573:19;;14232:366;;;:::o;14604:419::-;14770:4;14808:2;14797:9;14793:18;14785:26;;14857:9;14851:4;14847:20;14843:1;14832:9;14828:17;14821:47;14885:131;15011:4;14885:131;:::i;:::-;14877:139;;14604:419;;;:::o;15029:180::-;15077:77;15074:1;15067:88;15174:4;15171:1;15164:15;15198:4;15195:1;15188:15;15215:102;15257:8;15304:5;15301:1;15297:13;15276:34;;15215:102;;;:::o;15323:848::-;15384:5;15391:4;15415:6;15406:15;;15439:5;15430:14;;15453:712;15474:1;15464:8;15461:15;15453:712;;;15569:4;15564:3;15560:14;15554:4;15551:24;15548:50;;;15578:18;;:::i;:::-;15548:50;15628:1;15618:8;15614:16;15611:451;;;16043:4;16036:5;16032:16;16023:25;;15611:451;16093:4;16087;16083:15;16075:23;;16123:32;16146:8;16123:32;:::i;:::-;16111:44;;15453:712;;;15323:848;;;;;;;:::o;16177:1073::-;16231:5;16422:8;16412:40;;16443:1;16434:10;;16445:5;;16412:40;16471:4;16461:36;;16488:1;16479:10;;16490:5;;16461:36;16557:4;16605:1;16600:27;;;;16641:1;16636:191;;;;16550:277;;16600:27;16618:1;16609:10;;16620:5;;;16636:191;16681:3;16671:8;16668:17;16665:43;;;16688:18;;:::i;:::-;16665:43;16737:8;16734:1;16730:16;16721:25;;16772:3;16765:5;16762:14;16759:40;;;16779:18;;:::i;:::-;16759:40;16812:5;;;16550:277;;16936:2;16926:8;16923:16;16917:3;16911:4;16908:13;16904:36;16886:2;16876:8;16873:16;16868:2;16862:4;16859:12;16855:35;16839:111;16836:246;;;16992:8;16986:4;16982:19;16973:28;;17027:3;17020:5;17017:14;17014:40;;;17034:18;;:::i;:::-;17014:40;17067:5;;16836:246;17107:42;17145:3;17135:8;17129:4;17126:1;17107:42;:::i;:::-;17092:57;;;;17181:4;17176:3;17172:14;17165:5;17162:25;17159:51;;;17190:18;;:::i;:::-;17159:51;17239:4;17232:5;17228:16;17219:25;;16177:1073;;;;;;:::o;17256:281::-;17314:5;17338:23;17356:4;17338:23;:::i;:::-;17330:31;;17382:25;17398:8;17382:25;:::i;:::-;17370:37;;17426:104;17463:66;17453:8;17447:4;17426:104;:::i;:::-;17417:113;;17256:281;;;;:::o;17543:410::-;17583:7;17606:20;17624:1;17606:20;:::i;:::-;17601:25;;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17695:1;17692;17688:9;17717:30;17735:11;17717:30;:::i;:::-;17706:41;;17896:1;17887:7;17883:15;17880:1;17877:22;17857:1;17850:9;17830:83;17807:139;;17926:18;;:::i;:::-;17807:139;17591:362;17543:410;;;;:::o;17959:227::-;18099:34;18095:1;18087:6;18083:14;18076:58;18168:10;18163:2;18155:6;18151:15;18144:35;17959:227;:::o;18192:366::-;18334:3;18355:67;18419:2;18414:3;18355:67;:::i;:::-;18348:74;;18431:93;18520:3;18431:93;:::i;:::-;18549:2;18544:3;18540:12;18533:19;;18192:366;;;:::o;18564:419::-;18730:4;18768:2;18757:9;18753:18;18745:26;;18817:9;18811:4;18807:20;18803:1;18792:9;18788:17;18781:47;18845:131;18971:4;18845:131;:::i;:::-;18837:139;;18564:419;;;:::o;18989:194::-;19029:4;19049:20;19067:1;19049:20;:::i;:::-;19044:25;;19083:20;19101:1;19083:20;:::i;:::-;19078:25;;19127:1;19124;19120:9;19112:17;;19151:1;19145:4;19142:11;19139:37;;;19156:18;;:::i;:::-;19139:37;18989:194;;;;:::o;19189:191::-;19229:3;19248:20;19266:1;19248:20;:::i;:::-;19243:25;;19282:20;19300:1;19282:20;:::i;:::-;19277:25;;19325:1;19322;19318:9;19311:16;;19346:3;19343:1;19340:10;19337:36;;;19353:18;;:::i;:::-;19337:36;19189:191;;;;:::o;19386:221::-;19526:34;19522:1;19514:6;19510:14;19503:58;19595:4;19590:2;19582:6;19578:15;19571:29;19386:221;:::o;19613:366::-;19755:3;19776:67;19840:2;19835:3;19776:67;:::i;:::-;19769:74;;19852:93;19941:3;19852:93;:::i;:::-;19970:2;19965:3;19961:12;19954:19;;19613:366;;;:::o;19985:419::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:131;20392:4;20266:131;:::i;:::-;20258:139;;19985:419;;;:::o;20410:174::-;20550:26;20546:1;20538:6;20534:14;20527:50;20410:174;:::o;20590:366::-;20732:3;20753:67;20817:2;20812:3;20753:67;:::i;:::-;20746:74;;20829:93;20918:3;20829:93;:::i;:::-;20947:2;20942:3;20938:12;20931:19;;20590:366;;;:::o;20962:419::-;21128:4;21166:2;21155:9;21151:18;21143:26;;21215:9;21209:4;21205:20;21201:1;21190:9;21186:17;21179:47;21243:131;21369:4;21243:131;:::i;:::-;21235:139;;20962:419;;;:::o;21387:332::-;21508:4;21546:2;21535:9;21531:18;21523:26;;21559:71;21627:1;21616:9;21612:17;21603:6;21559:71;:::i;:::-;21640:72;21708:2;21697:9;21693:18;21684:6;21640:72;:::i;:::-;21387:332;;;;;:::o;21725:174::-;21865:26;21861:1;21853:6;21849:14;21842:50;21725:174;:::o;21905:366::-;22047:3;22068:67;22132:2;22127:3;22068:67;:::i;:::-;22061:74;;22144:93;22233:3;22144:93;:::i;:::-;22262:2;22257:3;22253:12;22246:19;;21905:366;;;:::o;22277:419::-;22443:4;22481:2;22470:9;22466:18;22458:26;;22530:9;22524:4;22520:20;22516:1;22505:9;22501:17;22494:47;22558:131;22684:4;22558:131;:::i;:::-;22550:139;;22277:419;;;:::o;22702:241::-;22842:34;22838:1;22830:6;22826:14;22819:58;22911:24;22906:2;22898:6;22894:15;22887:49;22702:241;:::o;22949:366::-;23091:3;23112:67;23176:2;23171:3;23112:67;:::i;:::-;23105:74;;23188:93;23277:3;23188:93;:::i;:::-;23306:2;23301:3;23297:12;23290:19;;22949:366;;;:::o;23321:419::-;23487:4;23525:2;23514:9;23510:18;23502:26;;23574:9;23568:4;23564:20;23560:1;23549:9;23545:17;23538:47;23602:131;23728:4;23602:131;:::i;:::-;23594:139;;23321:419;;;:::o;23746:332::-;23867:4;23905:2;23894:9;23890:18;23882:26;;23918:71;23986:1;23975:9;23971:17;23962:6;23918:71;:::i;:::-;23999:72;24067:2;24056:9;24052:18;24043:6;23999:72;:::i;:::-;23746:332;;;;;:::o;24084:137::-;24138:5;24169:6;24163:13;24154:22;;24185:30;24209:5;24185:30;:::i;:::-;24084:137;;;;:::o;24227:345::-;24294:6;24343:2;24331:9;24322:7;24318:23;24314:32;24311:119;;;24349:79;;:::i;:::-;24311:119;24469:1;24494:61;24547:7;24538:6;24527:9;24523:22;24494:61;:::i;:::-;24484:71;;24440:125;24227:345;;;;:::o;24578:180::-;24626:77;24623:1;24616:88;24723:4;24720:1;24713:15;24747:4;24744:1;24737:15;24764:233;24803:3;24826:24;24844:5;24826:24;:::i;:::-;24817:33;;24872:66;24865:5;24862:77;24859:103;;24942:18;;:::i;:::-;24859:103;24989:1;24982:5;24978:13;24971:20;;24764:233;;;:::o;25003:224::-;25143:34;25139:1;25131:6;25127:14;25120:58;25212:7;25207:2;25199:6;25195:15;25188:32;25003:224;:::o;25233:366::-;25375:3;25396:67;25460:2;25455:3;25396:67;:::i;:::-;25389:74;;25472:93;25561:3;25472:93;:::i;:::-;25590:2;25585:3;25581:12;25574:19;;25233:366;;;:::o;25605:419::-;25771:4;25809:2;25798:9;25794:18;25786:26;;25858:9;25852:4;25848:20;25844:1;25833:9;25829:17;25822:47;25886:131;26012:4;25886:131;:::i;:::-;25878:139;;25605:419;;;:::o;26030:230::-;26170:34;26166:1;26158:6;26154:14;26147:58;26239:13;26234:2;26226:6;26222:15;26215:38;26030:230;:::o;26266:366::-;26408:3;26429:67;26493:2;26488:3;26429:67;:::i;:::-;26422:74;;26505:93;26594:3;26505:93;:::i;:::-;26623:2;26618:3;26614:12;26607:19;;26266:366;;;:::o;26638:419::-;26804:4;26842:2;26831:9;26827:18;26819:26;;26891:9;26885:4;26881:20;26877:1;26866:9;26862:17;26855:47;26919:131;27045:4;26919:131;:::i;:::-;26911:139;;26638:419;;;:::o;27063:226::-;27203:34;27199:1;27191:6;27187:14;27180:58;27272:9;27267:2;27259:6;27255:15;27248:34;27063:226;:::o;27295:366::-;27437:3;27458:67;27522:2;27517:3;27458:67;:::i;:::-;27451:74;;27534:93;27623:3;27534:93;:::i;:::-;27652:2;27647:3;27643:12;27636:19;;27295:366;;;:::o;27667:419::-;27833:4;27871:2;27860:9;27856:18;27848:26;;27920:9;27914:4;27910:20;27906:1;27895:9;27891:17;27884:47;27948:131;28074:4;27948:131;:::i;:::-;27940:139;;27667:419;;;:::o;28092:225::-;28232:34;28228:1;28220:6;28216:14;28209:58;28301:8;28296:2;28288:6;28284:15;28277:33;28092:225;:::o;28323:366::-;28465:3;28486:67;28550:2;28545:3;28486:67;:::i;:::-;28479:74;;28562:93;28651:3;28562:93;:::i;:::-;28680:2;28675:3;28671:12;28664:19;;28323:366;;;:::o;28695:419::-;28861:4;28899:2;28888:9;28884:18;28876:26;;28948:9;28942:4;28938:20;28934:1;28923:9;28919:17;28912:47;28976:131;29102:4;28976:131;:::i;:::-;28968:139;;28695:419;;;:::o;29120:223::-;29260:34;29256:1;29248:6;29244:14;29237:58;29329:6;29324:2;29316:6;29312:15;29305:31;29120:223;:::o;29349:366::-;29491:3;29512:67;29576:2;29571:3;29512:67;:::i;:::-;29505:74;;29588:93;29677:3;29588:93;:::i;:::-;29706:2;29701:3;29697:12;29690:19;;29349:366;;;:::o;29721:419::-;29887:4;29925:2;29914:9;29910:18;29902:26;;29974:9;29968:4;29964:20;29960:1;29949:9;29945:17;29938:47;30002:131;30128:4;30002:131;:::i;:::-;29994:139;;29721:419;;;:::o;30146:221::-;30286:34;30282:1;30274:6;30270:14;30263:58;30355:4;30350:2;30342:6;30338:15;30331:29;30146:221;:::o;30373:366::-;30515:3;30536:67;30600:2;30595:3;30536:67;:::i;:::-;30529:74;;30612:93;30701:3;30612:93;:::i;:::-;30730:2;30725:3;30721:12;30714:19;;30373:366;;;:::o;30745:419::-;30911:4;30949:2;30938:9;30934:18;30926:26;;30998:9;30992:4;30988:20;30984:1;30973:9;30969:17;30962:47;31026:131;31152:4;31026:131;:::i;:::-;31018:139;;30745:419;;;:::o;31170:228::-;31310:34;31306:1;31298:6;31294:14;31287:58;31379:11;31374:2;31366:6;31362:15;31355:36;31170:228;:::o;31404:366::-;31546:3;31567:67;31631:2;31626:3;31567:67;:::i;:::-;31560:74;;31643:93;31732:3;31643:93;:::i;:::-;31761:2;31756:3;31752:12;31745:19;;31404:366;;;:::o;31776:419::-;31942:4;31980:2;31969:9;31965:18;31957:26;;32029:9;32023:4;32019:20;32015:1;32004:9;32000:17;31993:47;32057:131;32183:4;32057:131;:::i;:::-;32049:139;;31776:419;;;:::o;32201:175::-;32341:27;32337:1;32329:6;32325:14;32318:51;32201:175;:::o;32382:366::-;32524:3;32545:67;32609:2;32604:3;32545:67;:::i;:::-;32538:74;;32621:93;32710:3;32621:93;:::i;:::-;32739:2;32734:3;32730:12;32723:19;;32382:366;;;:::o;32754:419::-;32920:4;32958:2;32947:9;32943:18;32935:26;;33007:9;33001:4;32997:20;32993:1;32982:9;32978:17;32971:47;33035:131;33161:4;33035:131;:::i;:::-;33027:139;;32754:419;;;:::o;33179:169::-;33319:21;33315:1;33307:6;33303:14;33296:45;33179:169;:::o;33354:366::-;33496:3;33517:67;33581:2;33576:3;33517:67;:::i;:::-;33510:74;;33593:93;33682:3;33593:93;:::i;:::-;33711:2;33706:3;33702:12;33695:19;;33354:366;;;:::o;33726:419::-;33892:4;33930:2;33919:9;33915:18;33907:26;;33979:9;33973:4;33969:20;33965:1;33954:9;33950:17;33943:47;34007:131;34133:4;34007:131;:::i;:::-;33999:139;;33726:419;;;:::o;34151:175::-;34291:27;34287:1;34279:6;34275:14;34268:51;34151:175;:::o;34332:366::-;34474:3;34495:67;34559:2;34554:3;34495:67;:::i;:::-;34488:74;;34571:93;34660:3;34571:93;:::i;:::-;34689:2;34684:3;34680:12;34673:19;;34332:366;;;:::o;34704:419::-;34870:4;34908:2;34897:9;34893:18;34885:26;;34957:9;34951:4;34947:20;34943:1;34932:9;34928:17;34921:47;34985:131;35111:4;34985:131;:::i;:::-;34977:139;;34704:419;;;:::o;35129:176::-;35269:28;35265:1;35257:6;35253:14;35246:52;35129:176;:::o;35311:366::-;35453:3;35474:67;35538:2;35533:3;35474:67;:::i;:::-;35467:74;;35550:93;35639:3;35550:93;:::i;:::-;35668:2;35663:3;35659:12;35652:19;;35311:366;;;:::o;35683:419::-;35849:4;35887:2;35876:9;35872:18;35864:26;;35936:9;35930:4;35926:20;35922:1;35911:9;35907:17;35900:47;35964:131;36090:4;35964:131;:::i;:::-;35956:139;;35683:419;;;:::o;36108:180::-;36156:77;36153:1;36146:88;36253:4;36250:1;36243:15;36277:4;36274:1;36267:15;36294:185;36334:1;36351:20;36369:1;36351:20;:::i;:::-;36346:25;;36385:20;36403:1;36385:20;:::i;:::-;36380:25;;36424:1;36414:35;;36429:18;;:::i;:::-;36414:35;36471:1;36468;36464:9;36459:14;;36294:185;;;;:::o;36485:224::-;36625:34;36621:1;36613:6;36609:14;36602:58;36694:7;36689:2;36681:6;36677:15;36670:32;36485:224;:::o;36715:366::-;36857:3;36878:67;36942:2;36937:3;36878:67;:::i;:::-;36871:74;;36954:93;37043:3;36954:93;:::i;:::-;37072:2;37067:3;37063:12;37056:19;;36715:366;;;:::o;37087:419::-;37253:4;37291:2;37280:9;37276:18;37268:26;;37340:9;37334:4;37330:20;37326:1;37315:9;37311:17;37304:47;37368:131;37494:4;37368:131;:::i;:::-;37360:139;;37087:419;;;:::o;37512:222::-;37652:34;37648:1;37640:6;37636:14;37629:58;37721:5;37716:2;37708:6;37704:15;37697:30;37512:222;:::o;37740:366::-;37882:3;37903:67;37967:2;37962:3;37903:67;:::i;:::-;37896:74;;37979:93;38068:3;37979:93;:::i;:::-;38097:2;38092:3;38088:12;38081:19;;37740:366;;;:::o;38112:419::-;38278:4;38316:2;38305:9;38301:18;38293:26;;38365:9;38359:4;38355:20;38351:1;38340:9;38336:17;38329:47;38393:131;38519:4;38393:131;:::i;:::-;38385:139;;38112:419;;;:::o;38537:225::-;38677:34;38673:1;38665:6;38661:14;38654:58;38746:8;38741:2;38733:6;38729:15;38722:33;38537:225;:::o;38768:366::-;38910:3;38931:67;38995:2;38990:3;38931:67;:::i;:::-;38924:74;;39007:93;39096:3;39007:93;:::i;:::-;39125:2;39120:3;39116:12;39109:19;;38768:366;;;:::o;39140:419::-;39306:4;39344:2;39333:9;39329:18;39321:26;;39393:9;39387:4;39383:20;39379:1;39368:9;39364:17;39357:47;39421:131;39547:4;39421:131;:::i;:::-;39413:139;;39140:419;;;:::o;39565:143::-;39622:5;39653:6;39647:13;39638:22;;39669:33;39696:5;39669:33;:::i;:::-;39565:143;;;;:::o;39714:351::-;39784:6;39833:2;39821:9;39812:7;39808:23;39804:32;39801:119;;;39839:79;;:::i;:::-;39801:119;39959:1;39984:64;40040:7;40031:6;40020:9;40016:22;39984:64;:::i;:::-;39974:74;;39930:128;39714:351;;;;:::o;40071:85::-;40116:7;40145:5;40134:16;;40071:85;;;:::o;40162:158::-;40220:9;40253:61;40271:42;40280:32;40306:5;40280:32;:::i;:::-;40271:42;:::i;:::-;40253:61;:::i;:::-;40240:74;;40162:158;;;:::o;40326:147::-;40421:45;40460:5;40421:45;:::i;:::-;40416:3;40409:58;40326:147;;:::o;40479:114::-;40546:6;40580:5;40574:12;40564:22;;40479:114;;;:::o;40599:184::-;40698:11;40732:6;40727:3;40720:19;40772:4;40767:3;40763:14;40748:29;;40599:184;;;;:::o;40789:132::-;40856:4;40879:3;40871:11;;40909:4;40904:3;40900:14;40892:22;;40789:132;;;:::o;40927:108::-;41004:24;41022:5;41004:24;:::i;:::-;40999:3;40992:37;40927:108;;:::o;41041:179::-;41110:10;41131:46;41173:3;41165:6;41131:46;:::i;:::-;41209:4;41204:3;41200:14;41186:28;;41041:179;;;;:::o;41226:113::-;41296:4;41328;41323:3;41319:14;41311:22;;41226:113;;;:::o;41375:732::-;41494:3;41523:54;41571:5;41523:54;:::i;:::-;41593:86;41672:6;41667:3;41593:86;:::i;:::-;41586:93;;41703:56;41753:5;41703:56;:::i;:::-;41782:7;41813:1;41798:284;41823:6;41820:1;41817:13;41798:284;;;41899:6;41893:13;41926:63;41985:3;41970:13;41926:63;:::i;:::-;41919:70;;42012:60;42065:6;42012:60;:::i;:::-;42002:70;;41858:224;41845:1;41842;41838:9;41833:14;;41798:284;;;41802:14;42098:3;42091:10;;41499:608;;;41375:732;;;;:::o;42113:831::-;42376:4;42414:3;42403:9;42399:19;42391:27;;42428:71;42496:1;42485:9;42481:17;42472:6;42428:71;:::i;:::-;42509:80;42585:2;42574:9;42570:18;42561:6;42509:80;:::i;:::-;42636:9;42630:4;42626:20;42621:2;42610:9;42606:18;42599:48;42664:108;42767:4;42758:6;42664:108;:::i;:::-;42656:116;;42782:72;42850:2;42839:9;42835:18;42826:6;42782:72;:::i;:::-;42864:73;42932:3;42921:9;42917:19;42908:6;42864:73;:::i;:::-;42113:831;;;;;;;;:::o;42950:807::-;43199:4;43237:3;43226:9;43222:19;43214:27;;43251:71;43319:1;43308:9;43304:17;43295:6;43251:71;:::i;:::-;43332:72;43400:2;43389:9;43385:18;43376:6;43332:72;:::i;:::-;43414:80;43490:2;43479:9;43475:18;43466:6;43414:80;:::i;:::-;43504;43580:2;43569:9;43565:18;43556:6;43504:80;:::i;:::-;43594:73;43662:3;43651:9;43647:19;43638:6;43594:73;:::i;:::-;43677;43745:3;43734:9;43730:19;43721:6;43677:73;:::i;:::-;42950:807;;;;;;;;;:::o;43763:143::-;43820:5;43851:6;43845:13;43836:22;;43867:33;43894:5;43867:33;:::i;:::-;43763:143;;;;:::o;43912:663::-;44000:6;44008;44016;44065:2;44053:9;44044:7;44040:23;44036:32;44033:119;;;44071:79;;:::i;:::-;44033:119;44191:1;44216:64;44272:7;44263:6;44252:9;44248:22;44216:64;:::i;:::-;44206:74;;44162:128;44329:2;44355:64;44411:7;44402:6;44391:9;44387:22;44355:64;:::i;:::-;44345:74;;44300:129;44468:2;44494:64;44550:7;44541:6;44530:9;44526:22;44494:64;:::i;:::-;44484:74;;44439:129;43912:663;;;;;:::o;44581:179::-;44721:31;44717:1;44709:6;44705:14;44698:55;44581:179;:::o;44766:366::-;44908:3;44929:67;44993:2;44988:3;44929:67;:::i;:::-;44922:74;;45005:93;45094:3;45005:93;:::i;:::-;45123:2;45118:3;45114:12;45107:19;;44766:366;;;:::o;45138:419::-;45304:4;45342:2;45331:9;45327:18;45319:26;;45391:9;45385:4;45381:20;45377:1;45366:9;45362:17;45355:47;45419:131;45545:4;45419:131;:::i;:::-;45411:139;;45138:419;;;:::o;45563:147::-;45664:11;45701:3;45686:18;;45563:147;;;;:::o;45716:114::-;;:::o;45836:398::-;45995:3;46016:83;46097:1;46092:3;46016:83;:::i;:::-;46009:90;;46108:93;46197:3;46108:93;:::i;:::-;46226:1;46221:3;46217:11;46210:18;;45836:398;;;:::o;46240:379::-;46424:3;46446:147;46589:3;46446:147;:::i;:::-;46439:154;;46610:3;46603:10;;46240:379;;;:::o;46625:245::-;46765:34;46761:1;46753:6;46749:14;46742:58;46834:28;46829:2;46821:6;46817:15;46810:53;46625:245;:::o;46876:366::-;47018:3;47039:67;47103:2;47098:3;47039:67;:::i;:::-;47032:74;;47115:93;47204:3;47115:93;:::i;:::-;47233:2;47228:3;47224:12;47217:19;;46876:366;;;:::o;47248:419::-;47414:4;47452:2;47441:9;47437:18;47429:26;;47501:9;47495:4;47491:20;47487:1;47476:9;47472:17;47465:47;47529:131;47655:4;47529:131;:::i;:::-;47521:139;;47248:419;;;:::o
Swarm Source
ipfs://645fb364011ead38ca81ca75031cb493ca132d1d6ec24efdfb110370ba7105cf
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.