Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 RIDGE
Holders
32
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
14,866.117631162768309351 RIDGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RidgeProtocol
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-26 */ //SPDX-License-Identifier: MIT pragma solidity 0.8.12; 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"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } 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, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract RidgeProtocol is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public tradingEnabled; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 1_000 * 10e18; uint256 public maxTxAmount = 1_000_000 * 10**18; uint256 public maxWalletAmount = 1_000_000 * 10**18; address public marketingWallet = 0x63b309bCa1510533B914bC866CCb0794ec2b1b52; address public developerWallet = 0x63b309bCa1510533B914bC866CCb0794ec2b1b52; address public lpReceiver = marketingWallet; struct Taxes { uint256 marketing; uint256 liquidity; uint256 developer; } Taxes public taxes = Taxes(5,0,0); Taxes public sellTaxes = Taxes(99,0,0); uint256 public totTax = 5; uint256 public totSellTax = 99; mapping (address => bool) public excludedFromFees; mapping (address => bool) public isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Ridge Protocol", "RIDGE") { _mint(msg.sender, 1e6 * 10**decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[developerWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(tradingEnabled, "Trading not active yet"); if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; //calculate fee else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } //send fees if threshold has been reached //don't do this on buys, breaks swap if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 developerAmt = unitBalance * 2 * sellTaxes.developer; if(developerAmt > 0){ payable(developerWallet).sendValue(developerAmt); } } } 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); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable lpReceiver, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function enableTrading(uint256 numOfDeadBlocks) external onlyOwner { require(!tradingEnabled, "Trading already active"); tradingEnabled = true; swapEnabled = true; genesis_block = block.number; deadblocks = numOfDeadBlocks; } function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _developer) external onlyOwner{ taxes = Taxes(_marketing, _liquidity, _developer); totTax = _marketing + _liquidity + _developer; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _developer) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _developer); totSellTax = _marketing + _liquidity + _developer; } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDeveloperWallet(address newWallet) external onlyOwner{ developerWallet = newWallet; } function updateLpReceiver(address newWallet) external onlyOwner { lpReceiver = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function addBot(address account) external onlyOwner{ isBot[account] = true; } function addBotsBulk(address[] memory isBot_) external onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } } function delBot(address account) external { require (msg.sender == marketingWallet); isBot[account] = false; } function delBotsBulk(address[] memory isBot_) external onlyOwner { require (msg.sender == marketingWallet); for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = false; } } function updateExcludedFromFees(address _address, bool state) external onlyOwner{ excludedFromFees[_address] = state; } function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = amount * 10**18; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } function rescueERC20(address tokenAddress, uint256 amount) external { require (msg.sender == marketingWallet); IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external { require (msg.sender == marketingWallet); payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 developerPercentage, uint256 marketingPercentage) external { require (msg.sender == marketingWallet); uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (developerPercentage + marketingPercentage)); if(developerPercentage > 0) payable(developerWallet).sendValue(newBalance * developerPercentage / (developerPercentage + marketingPercentage)); } function removeLimits() external onlyOwner returns (bool) { maxTxAmount = totalSupply(); maxWalletAmount = totalSupply(); return true; } // 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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBotsBulk","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":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"delBotsBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"developerPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"newWallet","type":"address"}],"name":"updateDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLpReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600060095569021e19e0c9bab2400000600a5569d3c21bcecceda1000000600b5569d3c21bcecceda1000000600c557363b309bca1510533b914bc866ccb0794ec2b1b52600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507363b309bca1510533b914bc866ccb0794ec2b1b52600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060058152602001600081526020016000815250601060008201518160000155602082015181600101556040820151816002015550506040518060600160405280606381526020016000815260200160008152506013600082015181600001556020820151816001015560408201518160020155505060056016556063601755348015620001d757600080fd5b506040518060400160405280600e81526020017f52696467652050726f746f636f6c0000000000000000000000000000000000008152506040518060400160405280600581526020017f524944474500000000000000000000000000000000000000000000000000000081525081600390805190602001906200025c929190620008c8565b50806004908051906020019062000275929190620008c8565b505050620002986200028c6200068760201b60201c565b6200068f60201b60201c565b620002d733620002ad6200075560201b60201c565b600a620002bb919062000b12565b620f4240620002cb919062000b63565b6200075e60201b60201c565b6001601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bc919062000c2e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044a919062000c2e565b6040518363ffffffff1660e01b81526004016200046992919062000c71565b6020604051808303816000875af115801562000489573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004af919062000c2e565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e11565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c89062000cff565b60405180910390fd5b620007e560008383620008c360201b60201c565b8060026000828254620007f9919062000d21565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000850919062000d21565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b7919062000d8f565b60405180910390a35050565b505050565b828054620008d69062000ddb565b90600052602060002090601f016020900481019282620008fa576000855562000946565b82601f106200091557805160ff191683800117855562000946565b8280016001018555821562000946579182015b828111156200094557825182559160200191906001019062000928565b5b50905062000955919062000959565b5090565b5b80821115620009745760008160009055506001016200095a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0657808604811115620009de57620009dd62000978565b5b6001851615620009ee5780820291505b8081029050620009fe85620009a7565b9450620009be565b94509492505050565b60008262000a21576001905062000af4565b8162000a31576000905062000af4565b816001811462000a4a576002811462000a555762000a8b565b600191505062000af4565b60ff84111562000a6a5762000a6962000978565b5b8360020a91508482111562000a845762000a8362000978565b5b5062000af4565b5060208310610133831016604e8410600b841016171562000ac55782820a90508381111562000abf5762000abe62000978565b5b62000af4565b62000ad48484846001620009b4565b9250905081840481111562000aee5762000aed62000978565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1f8262000afb565b915062000b2c8362000b05565b925062000b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0f565b905092915050565b600062000b708262000afb565b915062000b7d8362000afb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb95762000bb862000978565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf68262000bc9565b9050919050565b62000c088162000be9565b811462000c1457600080fd5b50565b60008151905062000c288162000bfd565b92915050565b60006020828403121562000c475762000c4662000bc4565b5b600062000c578482850162000c17565b91505092915050565b62000c6b8162000be9565b82525050565b600060408201905062000c88600083018562000c60565b62000c97602083018462000c60565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ce7601f8362000c9e565b915062000cf48262000caf565b602082019050919050565b6000602082019050818103600083015262000d1a8162000cd8565b9050919050565b600062000d2e8262000afb565b915062000d3b8362000afb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d735762000d7262000978565b5b828201905092915050565b62000d898162000afb565b82525050565b600060208201905062000da6600083018462000d7e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000df457607f821691505b6020821081141562000e0b5762000e0a62000dac565b5b50919050565b614c788062000e216000396000f3fe6080604052600436106103035760003560e01c8063728f8eea11610190578063aa4bde28116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b14610b8b578063f66895a314610bb4578063f887ea4014610be1578063ffecf51614610c0c5761030a565b8063e01af92c14610b10578063e545fd6d14610b39578063e9dae5ed14610b625761030a565b8063aa4bde28146109f0578063aacebbe314610a1b578063b1975ec614610a44578063c18bc19514610a6d578063dbe66ca014610a96578063dd62ed3e14610ad35761030a565b80638da5cb5b116101495780639e252f00116101235780639e252f0014610922578063a457c2d71461094b578063a8aa1b3114610988578063a9059cbb146109b35761030a565b80638da5cb5b146108a357806395d89b41146108ce5780639d0014b1146108f95761030a565b8063728f8eea146107a3578063751039fc146107d057806375f0a874146107fb57806382aa7c68146108265780638c0b5e221461084f5780638cd4426d1461087a5761030a565b80632bce5beb1161024f57806350c9a88f116102085780636ddd1713116101e25780636ddd1713146106fb578063703a49021461072657806370a082311461074f578063715018a61461078c5761030a565b806350c9a88f1461067e5780636256d181146106a957806365431974146106d25761030a565b80632bce5beb1461055c578063313ce5671461058557806339509351146105b05780633bbac579146105ed57806340b28c2f1461062a5780634ada218b146106535761030a565b80631f0c57fc116102bc57806326b5d32f1161029657806326b5d32f146104b4578063273123b7146104dd578063274a533c14610506578063293b7ef4146105315761030a565b80631f0c57fc146104215780632253163d1461044c57806323b872dd146104775761030a565b80630445b6671461030f57806306fdde031461033a5780630873321414610365578063095ea7b31461038e57806318160ddd146103cb578063185870f9146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c35565b6040516103319190613735565b60405180910390f35b34801561034657600080fd5b5061034f610c3b565b60405161035c91906137e9565b60405180910390f35b34801561037157600080fd5b5061038c6004803603810190610387919061384b565b610ccd565b005b34801561039a57600080fd5b506103b560048036038101906103b091906138fc565b610da9565b6040516103c29190613957565b60405180910390f35b3480156103d757600080fd5b506103e0610dc7565b6040516103ed9190613735565b60405180910390f35b34801561040257600080fd5b5061040b610dd1565b6040516104189190613981565b60405180910390f35b34801561042d57600080fd5b50610436610df7565b6040516104439190613981565b60405180910390f35b34801561045857600080fd5b50610461610e1d565b60405161046e9190613735565b60405180910390f35b34801561048357600080fd5b5061049e6004803603810190610499919061399c565b610e23565b6040516104ab9190613957565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d6919061384b565b610f24565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906139ef565b61108f565b005b34801561051257600080fd5b5061051b611144565b6040516105289190613735565b60405180910390f35b34801561053d57600080fd5b5061054661114a565b6040516105539190613735565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b64565b611150565b005b34801561059157600080fd5b5061059a611261565b6040516105a79190613bc9565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d291906138fc565b61126a565b6040516105e49190613957565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906139ef565b611316565b6040516106219190613957565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613c22565b611336565b005b34801561065f57600080fd5b50610668611438565b6040516106759190613957565b60405180910390f35b34801561068a57600080fd5b5061069361144b565b6040516106a09190613735565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613c62565b611451565b005b3480156106de57600080fd5b506106f960048036038101906106f491906139ef565b6114ea565b005b34801561070757600080fd5b506107106115aa565b60405161071d9190613957565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906139ef565b6115bd565b005b34801561075b57600080fd5b50610776600480360381019061077191906139ef565b61167d565b6040516107839190613735565b60405180910390f35b34801561079857600080fd5b506107a16116c5565b005b3480156107af57600080fd5b506107b861174d565b6040516107c793929190613c8f565b60405180910390f35b3480156107dc57600080fd5b506107e5611765565b6040516107f29190613957565b60405180910390f35b34801561080757600080fd5b50610810611806565b60405161081d9190613981565b60405180910390f35b34801561083257600080fd5b5061084d60048036038101906108489190613c62565b61182c565b005b34801561085b57600080fd5b5061086461193f565b6040516108719190613735565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c91906138fc565b611945565b005b3480156108af57600080fd5b506108b8611a29565b6040516108c59190613981565b60405180910390f35b3480156108da57600080fd5b506108e3611a53565b6040516108f091906137e9565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b9190613c62565b611ae5565b005b34801561092e57600080fd5b5061094960048036038101906109449190613c62565b611b6b565b005b34801561095757600080fd5b50610972600480360381019061096d91906138fc565b611bf8565b60405161097f9190613957565b60405180910390f35b34801561099457600080fd5b5061099d611cec565b6040516109aa9190613981565b60405180910390f35b3480156109bf57600080fd5b506109da60048036038101906109d591906138fc565b611d12565b6040516109e79190613957565b60405180910390f35b3480156109fc57600080fd5b50610a05611d30565b604051610a129190613735565b60405180910390f35b348015610a2757600080fd5b50610a426004803603810190610a3d91906139ef565b611d36565b005b348015610a5057600080fd5b50610a6b6004803603810190610a669190613b64565b611df6565b005b348015610a7957600080fd5b50610a946004803603810190610a8f9190613c62565b611f61565b005b348015610aa257600080fd5b50610abd6004803603810190610ab891906139ef565b611ffa565b604051610aca9190613957565b60405180910390f35b348015610adf57600080fd5b50610afa6004803603810190610af59190613cc6565b61201a565b604051610b079190613735565b60405180910390f35b348015610b1c57600080fd5b50610b376004803603810190610b329190613d32565b6120a1565b005b348015610b4557600080fd5b50610b606004803603810190610b5b9190613d5f565b61213a565b005b348015610b6e57600080fd5b50610b896004803603810190610b84919061384b565b612211565b005b348015610b9757600080fd5b50610bb26004803603810190610bad91906139ef565b6122ed565b005b348015610bc057600080fd5b50610bc96123e5565b604051610bd893929190613c8f565b60405180910390f35b348015610bed57600080fd5b50610bf66123fd565b604051610c039190613dfe565b60405180910390f35b348015610c1857600080fd5b50610c336004803603810190610c2e91906139ef565b612423565b005b600a5481565b606060038054610c4a90613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690613e48565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b610cd56124fa565b73ffffffffffffffffffffffffffffffffffffffff16610cf3611a29565b73ffffffffffffffffffffffffffffffffffffffff1614610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090613ec6565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506013600082015181600001556020820151816001015560408201518160020155905050808284610d949190613f15565b610d9e9190613f15565b601781905550505050565b6000610dbd610db66124fa565b8484612502565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000610e308484846126cd565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e7b6124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290613fdd565b60405180910390fd5b610f1885610f076124fa565b8584610f139190613ffd565b612502565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7e57600080fd5b6000479050610f8c84612d97565b60008147610f9a9190613ffd565b90506000831115611012576110118385610fb49190613f15565b8483610fc09190614031565b610fca91906140ba565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b600084111561108857611087838561102a9190613f15565b85836110369190614031565b61104091906140ba565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b5050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e957600080fd5b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60165481565b6111586124fa565b73ffffffffffffffffffffffffffffffffffffffff16611176611a29565b73ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390613ec6565b60405180910390fd5b60005b815181101561125d576001601960008484815181106111f1576111f06140eb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112559061411a565b9150506111cf565b5050565b60006012905090565b600061130c6112776124fa565b8484600160006112856124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113079190613f15565b612502565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b61133e6124fa565b73ffffffffffffffffffffffffffffffffffffffff1661135c611a29565b73ffffffffffffffffffffffffffffffffffffffff16146113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990613ec6565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b6114596124fa565b73ffffffffffffffffffffffffffffffffffffffff16611477611a29565b73ffffffffffffffffffffffffffffffffffffffff16146114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490613ec6565b60405180910390fd5b670de0b6b3a7640000816114e19190614031565b600b8190555050565b6114f26124fa565b73ffffffffffffffffffffffffffffffffffffffff16611510611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90613ec6565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760159054906101000a900460ff1681565b6115c56124fa565b73ffffffffffffffffffffffffffffffffffffffff166115e3611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163090613ec6565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116cd6124fa565b73ffffffffffffffffffffffffffffffffffffffff166116eb611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890613ec6565b60405180910390fd5b61174b60006130ce565b565b60108060000154908060010154908060020154905083565b600061176f6124fa565b73ffffffffffffffffffffffffffffffffffffffff1661178d611a29565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613ec6565b60405180910390fd5b6117eb610dc7565b600b819055506117f9610dc7565b600c819055506001905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118346124fa565b73ffffffffffffffffffffffffffffffffffffffff16611852611a29565b73ffffffffffffffffffffffffffffffffffffffff16146118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90613ec6565b60405180910390fd5b600760169054906101000a900460ff16156118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906141af565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119c3611a29565b836040518363ffffffff1660e01b81526004016119e19291906141cf565b6020604051808303816000875af1158015611a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a24919061420d565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611a6290613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8e90613e48565b8015611adb5780601f10611ab057610100808354040283529160200191611adb565b820191906000526020600020905b815481529060010190602001808311611abe57829003601f168201915b5050505050905090565b611aed6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611b0b611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5890613ec6565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc557600080fd5b611bf581611bd1611a29565b73ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b50565b60008060016000611c076124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb906142ac565b60405180910390fd5b611ce1611ccf6124fa565b858584611cdc9190613ffd565b612502565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d26611d1f6124fa565b84846126cd565b6001905092915050565b600c5481565b611d3e6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611d5c611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613ec6565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dfe6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611e1c611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613ec6565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ecc57600080fd5b60005b8151811015611f5d57600060196000848481518110611ef157611ef06140eb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611f559061411a565b915050611ecf565b5050565b611f696124fa565b73ffffffffffffffffffffffffffffffffffffffff16611f87611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613ec6565b60405180910390fd5b670de0b6b3a764000081611ff19190614031565b600c8190555050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120a96124fa565b73ffffffffffffffffffffffffffffffffffffffff166120c7611a29565b73ffffffffffffffffffffffffffffffffffffffff161461211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211490613ec6565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6121426124fa565b73ffffffffffffffffffffffffffffffffffffffff16612160611a29565b73ffffffffffffffffffffffffffffffffffffffff16146121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad90613ec6565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122196124fa565b73ffffffffffffffffffffffffffffffffffffffff16612237611a29565b73ffffffffffffffffffffffffffffffffffffffff161461228d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228490613ec6565b60405180910390fd5b60405180606001604052808481526020018381526020018281525060106000820151816000015560208201518160010155604082015181600201559050508082846122d89190613f15565b6122e29190613f15565b601681905550505050565b6122f56124fa565b73ffffffffffffffffffffffffffffffffffffffff16612313611a29565b73ffffffffffffffffffffffffffffffffffffffff1614612369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236090613ec6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d09061433e565b60405180910390fd5b6123e2816130ce565b50565b60138060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61242b6124fa565b73ffffffffffffffffffffffffffffffffffffffff16612449611a29565b73ffffffffffffffffffffffffffffffffffffffff161461249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613ec6565b60405180910390fd5b6001601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612569906143d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d990614462565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126c09190613735565b60405180910390a3505050565b60008111612710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612707906144f4565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127b45750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ea90614560565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128975750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128b05750600760149054906101000a900460ff16155b15612b6c57600760169054906101000a900460ff16612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906145cc565b60405180910390fd5b436009546008546129159190613f15565b1115612a7857600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146129c9576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612a77576001601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab490614638565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612b6b57600c5481612b1f8461167d565b612b299190613f15565b1115612b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b61906146ca565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680612bd25750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c265750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c345760009050612cc9565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cab57606460175483612c9a9190614031565b612ca491906140ba565b9050612cc8565b606460165483612cbb9190614031565b612cc591906140ba565b90505b5b600760159054906101000a900460ff168015612cf25750600760149054906101000a900460ff16155b8015612d4c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612d585750600081115b15612d6657612d65613194565b5b612d7c84848385612d779190613ffd565b613398565b6000811115612d9157612d90843083613398565b5b50505050565b6000600267ffffffffffffffff811115612db457612db3613a21565b5b604051908082528060200260200182016040528015612de25781602001602082028036833780820191505090505b5090503081600081518110612dfa57612df96140eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec591906146ff565b81600181518110612ed957612ed86140eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f4030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612502565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fa4959493929190614825565b600060405180830381600087803b158015612fbe57600080fd5b505af1158015612fd2573d6000803e3d6000fd5b505050505050565b8047101561301d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613014906148cb565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516130439061491c565b60006040518083038185875af1925050503d8060008114613080576040519150601f19603f3d011682016040523d82523d6000602084013e613085565b606091505b50509050806130c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c0906149a3565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16613396576001600760146101000a81548160ff02191690831515021790555060006131ce3061167d565b9050600a54811061337957600060026017546131ea9190614031565b9050600081601360010154846132009190614031565b61320a91906140ba565b90506000818461321a9190613ffd565b9050600047905061322a82612d97565b600081476132389190613ffd565b905060006013600101548661324d9190613ffd565b8261325891906140ba565b905060006013600101548261326d9190614031565b90506000811115613283576132828682613617565b5b60006013600001546002846132989190614031565b6132a29190614031565b905060008111156132f9576132f881600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b600060136002015460028561330e9190614031565b6133189190614031565b9050600081111561336f5761336e81600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90614a35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346f90614ac7565b60405180910390fd5b613483838383613717565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350090614b59565b60405180910390fd5b81816135159190613ffd565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135a59190613f15565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136099190613735565b60405180910390a350505050565b61364430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612502565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016136cd96959493929190614b79565b60606040518083038185885af11580156136eb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137109190614bef565b5050505050565b505050565b6000819050919050565b61372f8161371c565b82525050565b600060208201905061374a6000830184613726565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561378a57808201518184015260208101905061376f565b83811115613799576000848401525b50505050565b6000601f19601f8301169050919050565b60006137bb82613750565b6137c5818561375b565b93506137d581856020860161376c565b6137de8161379f565b840191505092915050565b6000602082019050818103600083015261380381846137b0565b905092915050565b6000604051905090565b600080fd5b600080fd5b6138288161371c565b811461383357600080fd5b50565b6000813590506138458161381f565b92915050565b60008060006060848603121561386457613863613815565b5b600061387286828701613836565b935050602061388386828701613836565b925050604061389486828701613836565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138c98261389e565b9050919050565b6138d9816138be565b81146138e457600080fd5b50565b6000813590506138f6816138d0565b92915050565b6000806040838503121561391357613912613815565b5b6000613921858286016138e7565b925050602061393285828601613836565b9150509250929050565b60008115159050919050565b6139518161393c565b82525050565b600060208201905061396c6000830184613948565b92915050565b61397b816138be565b82525050565b60006020820190506139966000830184613972565b92915050565b6000806000606084860312156139b5576139b4613815565b5b60006139c3868287016138e7565b93505060206139d4868287016138e7565b92505060406139e586828701613836565b9150509250925092565b600060208284031215613a0557613a04613815565b5b6000613a13848285016138e7565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613a598261379f565b810181811067ffffffffffffffff82111715613a7857613a77613a21565b5b80604052505050565b6000613a8b61380b565b9050613a978282613a50565b919050565b600067ffffffffffffffff821115613ab757613ab6613a21565b5b602082029050602081019050919050565b600080fd5b6000613ae0613adb84613a9c565b613a81565b90508083825260208201905060208402830185811115613b0357613b02613ac8565b5b835b81811015613b2c5780613b1888826138e7565b845260208401935050602081019050613b05565b5050509392505050565b600082601f830112613b4b57613b4a613a1c565b5b8135613b5b848260208601613acd565b91505092915050565b600060208284031215613b7a57613b79613815565b5b600082013567ffffffffffffffff811115613b9857613b9761381a565b5b613ba484828501613b36565b91505092915050565b600060ff82169050919050565b613bc381613bad565b82525050565b6000602082019050613bde6000830184613bba565b92915050565b6000613bef826138be565b9050919050565b613bff81613be4565b8114613c0a57600080fd5b50565b600081359050613c1c81613bf6565b92915050565b60008060408385031215613c3957613c38613815565b5b6000613c4785828601613c0d565b9250506020613c58858286016138e7565b9150509250929050565b600060208284031215613c7857613c77613815565b5b6000613c8684828501613836565b91505092915050565b6000606082019050613ca46000830186613726565b613cb16020830185613726565b613cbe6040830184613726565b949350505050565b60008060408385031215613cdd57613cdc613815565b5b6000613ceb858286016138e7565b9250506020613cfc858286016138e7565b9150509250929050565b613d0f8161393c565b8114613d1a57600080fd5b50565b600081359050613d2c81613d06565b92915050565b600060208284031215613d4857613d47613815565b5b6000613d5684828501613d1d565b91505092915050565b60008060408385031215613d7657613d75613815565b5b6000613d84858286016138e7565b9250506020613d9585828601613d1d565b9150509250929050565b6000819050919050565b6000613dc4613dbf613dba8461389e565b613d9f565b61389e565b9050919050565b6000613dd682613da9565b9050919050565b6000613de882613dcb565b9050919050565b613df881613ddd565b82525050565b6000602082019050613e136000830184613def565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e6057607f821691505b60208210811415613e7457613e73613e19565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613eb060208361375b565b9150613ebb82613e7a565b602082019050919050565b60006020820190508181036000830152613edf81613ea3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f208261371c565b9150613f2b8361371c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f6057613f5f613ee6565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc760288361375b565b9150613fd282613f6b565b604082019050919050565b60006020820190508181036000830152613ff681613fba565b9050919050565b60006140088261371c565b91506140138361371c565b92508282101561402657614025613ee6565b5b828203905092915050565b600061403c8261371c565b91506140478361371c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140805761407f613ee6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140c58261371c565b91506140d08361371c565b9250826140e0576140df61408b565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006141258261371c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561415857614157613ee6565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b600061419960168361375b565b91506141a482614163565b602082019050919050565b600060208201905081810360008301526141c88161418c565b9050919050565b60006040820190506141e46000830185613972565b6141f16020830184613726565b9392505050565b60008151905061420781613d06565b92915050565b60006020828403121561422357614222613815565b5b6000614231848285016141f8565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061429660258361375b565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061432860268361375b565b9150614333826142cc565b604082019050919050565b600060208201905081810360008301526143578161431b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006143ba60248361375b565b91506143c58261435e565b604082019050919050565b600060208201905081810360008301526143e9816143ad565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061444c60228361375b565b9150614457826143f0565b604082019050919050565b6000602082019050818103600083015261447b8161443f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144de60298361375b565b91506144e982614482565b604082019050919050565b6000602082019050818103600083015261450d816144d1565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b600061454a60198361375b565b915061455582614514565b602082019050919050565b600060208201905081810360008301526145798161453d565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006145b660168361375b565b91506145c182614580565b602082019050919050565b600060208201905081810360008301526145e5816145a9565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000614622601d8361375b565b915061462d826145ec565b602082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006146b460218361375b565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b6000815190506146f9816138d0565b92915050565b60006020828403121561471557614714613815565b5b6000614723848285016146ea565b91505092915050565b6000819050919050565b600061475161474c6147478461472c565b613d9f565b61371c565b9050919050565b61476181614736565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61479c816138be565b82525050565b60006147ae8383614793565b60208301905092915050565b6000602082019050919050565b60006147d282614767565b6147dc8185614772565b93506147e783614783565b8060005b838110156148185781516147ff88826147a2565b975061480a836147ba565b9250506001810190506147eb565b5085935050505092915050565b600060a08201905061483a6000830188613726565b6148476020830187614758565b818103604083015261485981866147c7565b90506148686060830185613972565b6148756080830184613726565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148b5601d8361375b565b91506148c08261487f565b602082019050919050565b600060208201905081810360008301526148e4816148a8565b9050919050565b600081905092915050565b50565b60006149066000836148eb565b9150614911826148f6565b600082019050919050565b6000614927826148f9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061498d603a8361375b565b915061499882614931565b604082019050919050565b600060208201905081810360008301526149bc81614980565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a1f60258361375b565b9150614a2a826149c3565b604082019050919050565b60006020820190508181036000830152614a4e81614a12565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ab160238361375b565b9150614abc82614a55565b604082019050919050565b60006020820190508181036000830152614ae081614aa4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b4360268361375b565b9150614b4e82614ae7565b604082019050919050565b60006020820190508181036000830152614b7281614b36565b9050919050565b600060c082019050614b8e6000830189613972565b614b9b6020830188613726565b614ba86040830187614758565b614bb56060830186614758565b614bc26080830185613972565b614bcf60a0830184613726565b979650505050505050565b600081519050614be98161381f565b92915050565b600080600060608486031215614c0857614c07613815565b5b6000614c1686828701614bda565b9350506020614c2786828701614bda565b9250506040614c3886828701614bda565b915050925092509256fea26469706673582212204ac9df5dc42720105f9c3404d0f4715d2d3216ecdc835d05959e56abe7e3d40264736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063728f8eea11610190578063aa4bde28116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b14610b8b578063f66895a314610bb4578063f887ea4014610be1578063ffecf51614610c0c5761030a565b8063e01af92c14610b10578063e545fd6d14610b39578063e9dae5ed14610b625761030a565b8063aa4bde28146109f0578063aacebbe314610a1b578063b1975ec614610a44578063c18bc19514610a6d578063dbe66ca014610a96578063dd62ed3e14610ad35761030a565b80638da5cb5b116101495780639e252f00116101235780639e252f0014610922578063a457c2d71461094b578063a8aa1b3114610988578063a9059cbb146109b35761030a565b80638da5cb5b146108a357806395d89b41146108ce5780639d0014b1146108f95761030a565b8063728f8eea146107a3578063751039fc146107d057806375f0a874146107fb57806382aa7c68146108265780638c0b5e221461084f5780638cd4426d1461087a5761030a565b80632bce5beb1161024f57806350c9a88f116102085780636ddd1713116101e25780636ddd1713146106fb578063703a49021461072657806370a082311461074f578063715018a61461078c5761030a565b806350c9a88f1461067e5780636256d181146106a957806365431974146106d25761030a565b80632bce5beb1461055c578063313ce5671461058557806339509351146105b05780633bbac579146105ed57806340b28c2f1461062a5780634ada218b146106535761030a565b80631f0c57fc116102bc57806326b5d32f1161029657806326b5d32f146104b4578063273123b7146104dd578063274a533c14610506578063293b7ef4146105315761030a565b80631f0c57fc146104215780632253163d1461044c57806323b872dd146104775761030a565b80630445b6671461030f57806306fdde031461033a5780630873321414610365578063095ea7b31461038e57806318160ddd146103cb578063185870f9146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c35565b6040516103319190613735565b60405180910390f35b34801561034657600080fd5b5061034f610c3b565b60405161035c91906137e9565b60405180910390f35b34801561037157600080fd5b5061038c6004803603810190610387919061384b565b610ccd565b005b34801561039a57600080fd5b506103b560048036038101906103b091906138fc565b610da9565b6040516103c29190613957565b60405180910390f35b3480156103d757600080fd5b506103e0610dc7565b6040516103ed9190613735565b60405180910390f35b34801561040257600080fd5b5061040b610dd1565b6040516104189190613981565b60405180910390f35b34801561042d57600080fd5b50610436610df7565b6040516104439190613981565b60405180910390f35b34801561045857600080fd5b50610461610e1d565b60405161046e9190613735565b60405180910390f35b34801561048357600080fd5b5061049e6004803603810190610499919061399c565b610e23565b6040516104ab9190613957565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d6919061384b565b610f24565b005b3480156104e957600080fd5b5061050460048036038101906104ff91906139ef565b61108f565b005b34801561051257600080fd5b5061051b611144565b6040516105289190613735565b60405180910390f35b34801561053d57600080fd5b5061054661114a565b6040516105539190613735565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613b64565b611150565b005b34801561059157600080fd5b5061059a611261565b6040516105a79190613bc9565b60405180910390f35b3480156105bc57600080fd5b506105d760048036038101906105d291906138fc565b61126a565b6040516105e49190613957565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906139ef565b611316565b6040516106219190613957565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c9190613c22565b611336565b005b34801561065f57600080fd5b50610668611438565b6040516106759190613957565b60405180910390f35b34801561068a57600080fd5b5061069361144b565b6040516106a09190613735565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613c62565b611451565b005b3480156106de57600080fd5b506106f960048036038101906106f491906139ef565b6114ea565b005b34801561070757600080fd5b506107106115aa565b60405161071d9190613957565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906139ef565b6115bd565b005b34801561075b57600080fd5b50610776600480360381019061077191906139ef565b61167d565b6040516107839190613735565b60405180910390f35b34801561079857600080fd5b506107a16116c5565b005b3480156107af57600080fd5b506107b861174d565b6040516107c793929190613c8f565b60405180910390f35b3480156107dc57600080fd5b506107e5611765565b6040516107f29190613957565b60405180910390f35b34801561080757600080fd5b50610810611806565b60405161081d9190613981565b60405180910390f35b34801561083257600080fd5b5061084d60048036038101906108489190613c62565b61182c565b005b34801561085b57600080fd5b5061086461193f565b6040516108719190613735565b60405180910390f35b34801561088657600080fd5b506108a1600480360381019061089c91906138fc565b611945565b005b3480156108af57600080fd5b506108b8611a29565b6040516108c59190613981565b60405180910390f35b3480156108da57600080fd5b506108e3611a53565b6040516108f091906137e9565b60405180910390f35b34801561090557600080fd5b50610920600480360381019061091b9190613c62565b611ae5565b005b34801561092e57600080fd5b5061094960048036038101906109449190613c62565b611b6b565b005b34801561095757600080fd5b50610972600480360381019061096d91906138fc565b611bf8565b60405161097f9190613957565b60405180910390f35b34801561099457600080fd5b5061099d611cec565b6040516109aa9190613981565b60405180910390f35b3480156109bf57600080fd5b506109da60048036038101906109d591906138fc565b611d12565b6040516109e79190613957565b60405180910390f35b3480156109fc57600080fd5b50610a05611d30565b604051610a129190613735565b60405180910390f35b348015610a2757600080fd5b50610a426004803603810190610a3d91906139ef565b611d36565b005b348015610a5057600080fd5b50610a6b6004803603810190610a669190613b64565b611df6565b005b348015610a7957600080fd5b50610a946004803603810190610a8f9190613c62565b611f61565b005b348015610aa257600080fd5b50610abd6004803603810190610ab891906139ef565b611ffa565b604051610aca9190613957565b60405180910390f35b348015610adf57600080fd5b50610afa6004803603810190610af59190613cc6565b61201a565b604051610b079190613735565b60405180910390f35b348015610b1c57600080fd5b50610b376004803603810190610b329190613d32565b6120a1565b005b348015610b4557600080fd5b50610b606004803603810190610b5b9190613d5f565b61213a565b005b348015610b6e57600080fd5b50610b896004803603810190610b84919061384b565b612211565b005b348015610b9757600080fd5b50610bb26004803603810190610bad91906139ef565b6122ed565b005b348015610bc057600080fd5b50610bc96123e5565b604051610bd893929190613c8f565b60405180910390f35b348015610bed57600080fd5b50610bf66123fd565b604051610c039190613dfe565b60405180910390f35b348015610c1857600080fd5b50610c336004803603810190610c2e91906139ef565b612423565b005b600a5481565b606060038054610c4a90613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7690613e48565b8015610cc35780601f10610c9857610100808354040283529160200191610cc3565b820191906000526020600020905b815481529060010190602001808311610ca657829003601f168201915b5050505050905090565b610cd56124fa565b73ffffffffffffffffffffffffffffffffffffffff16610cf3611a29565b73ffffffffffffffffffffffffffffffffffffffff1614610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090613ec6565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506013600082015181600001556020820151816001015560408201518160020155905050808284610d949190613f15565b610d9e9190613f15565b601781905550505050565b6000610dbd610db66124fa565b8484612502565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6000610e308484846126cd565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e7b6124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290613fdd565b60405180910390fd5b610f1885610f076124fa565b8584610f139190613ffd565b612502565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7e57600080fd5b6000479050610f8c84612d97565b60008147610f9a9190613ffd565b90506000831115611012576110118385610fb49190613f15565b8483610fc09190614031565b610fca91906140ba565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b600084111561108857611087838561102a9190613f15565b85836110369190614031565b61104091906140ba565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b5050505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e957600080fd5b6000601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60085481565b60165481565b6111586124fa565b73ffffffffffffffffffffffffffffffffffffffff16611176611a29565b73ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390613ec6565b60405180910390fd5b60005b815181101561125d576001601960008484815181106111f1576111f06140eb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112559061411a565b9150506111cf565b5050565b60006012905090565b600061130c6112776124fa565b8484600160006112856124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113079190613f15565b612502565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b61133e6124fa565b73ffffffffffffffffffffffffffffffffffffffff1661135c611a29565b73ffffffffffffffffffffffffffffffffffffffff16146113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990613ec6565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b6114596124fa565b73ffffffffffffffffffffffffffffffffffffffff16611477611a29565b73ffffffffffffffffffffffffffffffffffffffff16146114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490613ec6565b60405180910390fd5b670de0b6b3a7640000816114e19190614031565b600b8190555050565b6114f26124fa565b73ffffffffffffffffffffffffffffffffffffffff16611510611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90613ec6565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760159054906101000a900460ff1681565b6115c56124fa565b73ffffffffffffffffffffffffffffffffffffffff166115e3611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163090613ec6565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6116cd6124fa565b73ffffffffffffffffffffffffffffffffffffffff166116eb611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890613ec6565b60405180910390fd5b61174b60006130ce565b565b60108060000154908060010154908060020154905083565b600061176f6124fa565b73ffffffffffffffffffffffffffffffffffffffff1661178d611a29565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613ec6565b60405180910390fd5b6117eb610dc7565b600b819055506117f9610dc7565b600c819055506001905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118346124fa565b73ffffffffffffffffffffffffffffffffffffffff16611852611a29565b73ffffffffffffffffffffffffffffffffffffffff16146118a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189f90613ec6565b60405180910390fd5b600760169054906101000a900460ff16156118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906141af565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461199f57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6119c3611a29565b836040518363ffffffff1660e01b81526004016119e19291906141cf565b6020604051808303816000875af1158015611a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a24919061420d565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611a6290613e48565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8e90613e48565b8015611adb5780601f10611ab057610100808354040283529160200191611adb565b820191906000526020600020905b815481529060010190602001808311611abe57829003601f168201915b5050505050905090565b611aed6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611b0b611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5890613ec6565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bc557600080fd5b611bf581611bd1611a29565b73ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b50565b60008060016000611c076124fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb906142ac565b60405180910390fd5b611ce1611ccf6124fa565b858584611cdc9190613ffd565b612502565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d26611d1f6124fa565b84846126cd565b6001905092915050565b600c5481565b611d3e6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611d5c611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613ec6565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dfe6124fa565b73ffffffffffffffffffffffffffffffffffffffff16611e1c611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6990613ec6565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ecc57600080fd5b60005b8151811015611f5d57600060196000848481518110611ef157611ef06140eb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611f559061411a565b915050611ecf565b5050565b611f696124fa565b73ffffffffffffffffffffffffffffffffffffffff16611f87611a29565b73ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613ec6565b60405180910390fd5b670de0b6b3a764000081611ff19190614031565b600c8190555050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120a96124fa565b73ffffffffffffffffffffffffffffffffffffffff166120c7611a29565b73ffffffffffffffffffffffffffffffffffffffff161461211d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211490613ec6565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6121426124fa565b73ffffffffffffffffffffffffffffffffffffffff16612160611a29565b73ffffffffffffffffffffffffffffffffffffffff16146121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad90613ec6565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6122196124fa565b73ffffffffffffffffffffffffffffffffffffffff16612237611a29565b73ffffffffffffffffffffffffffffffffffffffff161461228d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228490613ec6565b60405180910390fd5b60405180606001604052808481526020018381526020018281525060106000820151816000015560208201518160010155604082015181600201559050508082846122d89190613f15565b6122e29190613f15565b601681905550505050565b6122f56124fa565b73ffffffffffffffffffffffffffffffffffffffff16612313611a29565b73ffffffffffffffffffffffffffffffffffffffff1614612369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236090613ec6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d09061433e565b60405180910390fd5b6123e2816130ce565b50565b60138060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61242b6124fa565b73ffffffffffffffffffffffffffffffffffffffff16612449611a29565b73ffffffffffffffffffffffffffffffffffffffff161461249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613ec6565b60405180910390fd5b6001601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612569906143d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d990614462565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516126c09190613735565b60405180910390a3505050565b60008111612710576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612707906144f4565b60405180910390fd5b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127b45750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6127f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ea90614560565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128975750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128b05750600760149054906101000a900460ff16155b15612b6c57600760169054906101000a900460ff16612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb906145cc565b60405180910390fd5b436009546008546129159190613f15565b1115612a7857600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146129c9576001601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612a77576001601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab490614638565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612b6b57600c5481612b1f8461167d565b612b299190613f15565b1115612b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b61906146ca565b60405180910390fd5b5b5b6000600760149054906101000a900460ff1680612bd25750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80612c265750601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c345760009050612cc9565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cab57606460175483612c9a9190614031565b612ca491906140ba565b9050612cc8565b606460165483612cbb9190614031565b612cc591906140ba565b90505b5b600760159054906101000a900460ff168015612cf25750600760149054906101000a900460ff16155b8015612d4c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612d585750600081115b15612d6657612d65613194565b5b612d7c84848385612d779190613ffd565b613398565b6000811115612d9157612d90843083613398565b5b50505050565b6000600267ffffffffffffffff811115612db457612db3613a21565b5b604051908082528060200260200182016040528015612de25781602001602082028036833780820191505090505b5090503081600081518110612dfa57612df96140eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec591906146ff565b81600181518110612ed957612ed86140eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f4030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612502565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612fa4959493929190614825565b600060405180830381600087803b158015612fbe57600080fd5b505af1158015612fd2573d6000803e3d6000fd5b505050505050565b8047101561301d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613014906148cb565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516130439061491c565b60006040518083038185875af1925050503d8060008114613080576040519150601f19603f3d011682016040523d82523d6000602084013e613085565b606091505b50509050806130c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130c0906149a3565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16613396576001600760146101000a81548160ff02191690831515021790555060006131ce3061167d565b9050600a54811061337957600060026017546131ea9190614031565b9050600081601360010154846132009190614031565b61320a91906140ba565b90506000818461321a9190613ffd565b9050600047905061322a82612d97565b600081476132389190613ffd565b905060006013600101548661324d9190613ffd565b8261325891906140ba565b905060006013600101548261326d9190614031565b90506000811115613283576132828682613617565b5b60006013600001546002846132989190614031565b6132a29190614031565b905060008111156132f9576132f881600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b600060136002015460028561330e9190614031565b6133189190614031565b9050600081111561336f5761336e81600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612fda90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ff90614a35565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161346f90614ac7565b60405180910390fd5b613483838383613717565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350090614b59565b60405180910390fd5b81816135159190613ffd565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546135a59190613f15565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136099190613735565b60405180910390a350505050565b61364430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612502565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016136cd96959493929190614b79565b60606040518083038185885af11580156136eb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906137109190614bef565b5050505050565b505050565b6000819050919050565b61372f8161371c565b82525050565b600060208201905061374a6000830184613726565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561378a57808201518184015260208101905061376f565b83811115613799576000848401525b50505050565b6000601f19601f8301169050919050565b60006137bb82613750565b6137c5818561375b565b93506137d581856020860161376c565b6137de8161379f565b840191505092915050565b6000602082019050818103600083015261380381846137b0565b905092915050565b6000604051905090565b600080fd5b600080fd5b6138288161371c565b811461383357600080fd5b50565b6000813590506138458161381f565b92915050565b60008060006060848603121561386457613863613815565b5b600061387286828701613836565b935050602061388386828701613836565b925050604061389486828701613836565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138c98261389e565b9050919050565b6138d9816138be565b81146138e457600080fd5b50565b6000813590506138f6816138d0565b92915050565b6000806040838503121561391357613912613815565b5b6000613921858286016138e7565b925050602061393285828601613836565b9150509250929050565b60008115159050919050565b6139518161393c565b82525050565b600060208201905061396c6000830184613948565b92915050565b61397b816138be565b82525050565b60006020820190506139966000830184613972565b92915050565b6000806000606084860312156139b5576139b4613815565b5b60006139c3868287016138e7565b93505060206139d4868287016138e7565b92505060406139e586828701613836565b9150509250925092565b600060208284031215613a0557613a04613815565b5b6000613a13848285016138e7565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613a598261379f565b810181811067ffffffffffffffff82111715613a7857613a77613a21565b5b80604052505050565b6000613a8b61380b565b9050613a978282613a50565b919050565b600067ffffffffffffffff821115613ab757613ab6613a21565b5b602082029050602081019050919050565b600080fd5b6000613ae0613adb84613a9c565b613a81565b90508083825260208201905060208402830185811115613b0357613b02613ac8565b5b835b81811015613b2c5780613b1888826138e7565b845260208401935050602081019050613b05565b5050509392505050565b600082601f830112613b4b57613b4a613a1c565b5b8135613b5b848260208601613acd565b91505092915050565b600060208284031215613b7a57613b79613815565b5b600082013567ffffffffffffffff811115613b9857613b9761381a565b5b613ba484828501613b36565b91505092915050565b600060ff82169050919050565b613bc381613bad565b82525050565b6000602082019050613bde6000830184613bba565b92915050565b6000613bef826138be565b9050919050565b613bff81613be4565b8114613c0a57600080fd5b50565b600081359050613c1c81613bf6565b92915050565b60008060408385031215613c3957613c38613815565b5b6000613c4785828601613c0d565b9250506020613c58858286016138e7565b9150509250929050565b600060208284031215613c7857613c77613815565b5b6000613c8684828501613836565b91505092915050565b6000606082019050613ca46000830186613726565b613cb16020830185613726565b613cbe6040830184613726565b949350505050565b60008060408385031215613cdd57613cdc613815565b5b6000613ceb858286016138e7565b9250506020613cfc858286016138e7565b9150509250929050565b613d0f8161393c565b8114613d1a57600080fd5b50565b600081359050613d2c81613d06565b92915050565b600060208284031215613d4857613d47613815565b5b6000613d5684828501613d1d565b91505092915050565b60008060408385031215613d7657613d75613815565b5b6000613d84858286016138e7565b9250506020613d9585828601613d1d565b9150509250929050565b6000819050919050565b6000613dc4613dbf613dba8461389e565b613d9f565b61389e565b9050919050565b6000613dd682613da9565b9050919050565b6000613de882613dcb565b9050919050565b613df881613ddd565b82525050565b6000602082019050613e136000830184613def565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e6057607f821691505b60208210811415613e7457613e73613e19565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613eb060208361375b565b9150613ebb82613e7a565b602082019050919050565b60006020820190508181036000830152613edf81613ea3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f208261371c565b9150613f2b8361371c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f6057613f5f613ee6565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc760288361375b565b9150613fd282613f6b565b604082019050919050565b60006020820190508181036000830152613ff681613fba565b9050919050565b60006140088261371c565b91506140138361371c565b92508282101561402657614025613ee6565b5b828203905092915050565b600061403c8261371c565b91506140478361371c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156140805761407f613ee6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140c58261371c565b91506140d08361371c565b9250826140e0576140df61408b565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006141258261371c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561415857614157613ee6565b5b600182019050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b600061419960168361375b565b91506141a482614163565b602082019050919050565b600060208201905081810360008301526141c88161418c565b9050919050565b60006040820190506141e46000830185613972565b6141f16020830184613726565b9392505050565b60008151905061420781613d06565b92915050565b60006020828403121561422357614222613815565b5b6000614231848285016141f8565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061429660258361375b565b91506142a18261423a565b604082019050919050565b600060208201905081810360008301526142c581614289565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061432860268361375b565b9150614333826142cc565b604082019050919050565b600060208201905081810360008301526143578161431b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006143ba60248361375b565b91506143c58261435e565b604082019050919050565b600060208201905081810360008301526143e9816143ad565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061444c60228361375b565b9150614457826143f0565b604082019050919050565b6000602082019050818103600083015261447b8161443f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006144de60298361375b565b91506144e982614482565b604082019050919050565b6000602082019050818103600083015261450d816144d1565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b600061454a60198361375b565b915061455582614514565b602082019050919050565b600060208201905081810360008301526145798161453d565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b60006145b660168361375b565b91506145c182614580565b602082019050919050565b600060208201905081810360008301526145e5816145a9565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000614622601d8361375b565b915061462d826145ec565b602082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006146b460218361375b565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b6000815190506146f9816138d0565b92915050565b60006020828403121561471557614714613815565b5b6000614723848285016146ea565b91505092915050565b6000819050919050565b600061475161474c6147478461472c565b613d9f565b61371c565b9050919050565b61476181614736565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61479c816138be565b82525050565b60006147ae8383614793565b60208301905092915050565b6000602082019050919050565b60006147d282614767565b6147dc8185614772565b93506147e783614783565b8060005b838110156148185781516147ff88826147a2565b975061480a836147ba565b9250506001810190506147eb565b5085935050505092915050565b600060a08201905061483a6000830188613726565b6148476020830187614758565b818103604083015261485981866147c7565b90506148686060830185613972565b6148756080830184613726565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006148b5601d8361375b565b91506148c08261487f565b602082019050919050565b600060208201905081810360008301526148e4816148a8565b9050919050565b600081905092915050565b50565b60006149066000836148eb565b9150614911826148f6565b600082019050919050565b6000614927826148f9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061498d603a8361375b565b915061499882614931565b604082019050919050565b600060208201905081810360008301526149bc81614980565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614a1f60258361375b565b9150614a2a826149c3565b604082019050919050565b60006020820190508181036000830152614a4e81614a12565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ab160238361375b565b9150614abc82614a55565b604082019050919050565b60006020820190508181036000830152614ae081614aa4565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b4360268361375b565b9150614b4e82614ae7565b604082019050919050565b60006020820190508181036000830152614b7281614b36565b9050919050565b600060c082019050614b8e6000830189613972565b614b9b6020830188613726565b614ba86040830187614758565b614bb56060830186614758565b614bc26080830185613972565b614bcf60a0830184613726565b979650505050505050565b600081519050614be98161381f565b92915050565b600080600060608486031215614c0857614c07613815565b5b6000614c1686828701614bda565b9350506020614c2786828701614bda565b9250506040614c3886828701614bda565b915050925092509256fea26469706673582212204ac9df5dc42720105f9c3404d0f4715d2d3216ecdc835d05959e56abe7e3d40264736f6c634300080c0033
Deployed Bytecode Sourcemap
13172:9465:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13495:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2378:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19622:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4545:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13746:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13828:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14119:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5196:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21774:623;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20657:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13418:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14087:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20471:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3340:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6027:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14218:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20227:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13383:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13453:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21176:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20114:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13353:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19992:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3669:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11949:94;;;;;;;;;;;;;:::i;:::-;;14002:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;22405:168;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13664:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19111:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13546:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21422:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11726:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2597:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18993:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21613:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6745:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13293:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4009:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13600:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19866:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20798:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21297:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14162:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4247:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18892:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21031:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19394:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12051:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14042:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13265:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20372:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13495:44;;;;:::o;2378:100::-;2432:13;2465:5;2458:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2378:100;:::o;19622:232::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19745:41:::1;;;;;;;;19751:10;19745:41;;;;19763:10;19745:41;;;;19775:10;19745:41;;::::0;19733:9:::1;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;19836:10;19823;19810;:23;;;;:::i;:::-;:36;;;;:::i;:::-;19797:10;:49;;;;19622:232:::0;;;:::o;4545:169::-;4628:4;4645:39;4654:12;:10;:12::i;:::-;4668:7;4677:6;4645:8;:39::i;:::-;4702:4;4695:11;;4545:169;;;;:::o;3498:108::-;3559:7;3586:12;;3579:19;;3498:108;:::o;13746:75::-;;;;;;;;;;;;;:::o;13828:43::-;;;;;;;;;;;;;:::o;14119:30::-;;;;:::o;5196:422::-;5302:4;5319:36;5329:6;5337:9;5348:6;5319:9;:36::i;:::-;5368:24;5395:11;:19;5407:6;5395:19;;;;;;;;;;;;;;;:33;5415:12;:10;:12::i;:::-;5395:33;;;;;;;;;;;;;;;;5368:60;;5467:6;5447:16;:26;;5439:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5529:57;5538:6;5546:12;:10;:12::i;:::-;5579:6;5560:16;:25;;;;:::i;:::-;5529:8;:57::i;:::-;5606:4;5599:11;;;5196:422;;;;;:::o;21774:623::-;21911:15;;;;;;;;;;;21897:29;;:10;:29;;;21888:39;;;;;;21938:19;21960:21;21938:43;;21992:24;22009:6;21992:16;:24::i;:::-;22027:18;22072:11;22048:21;:35;;;;:::i;:::-;22027:56;;22119:1;22097:19;:23;22094:142;;;22122:114;22215:19;22193;:41;;;;:::i;:::-;22170:19;22157:10;:32;;;;:::i;:::-;:78;;;;:::i;:::-;22130:15;;;;;;;;;;;22122:34;;;;:114;;;;:::i;:::-;22094:142;22272:1;22250:19;:23;22247:142;;;22275:114;22368:19;22346;:41;;;;:::i;:::-;22323:19;22310:10;:32;;;;:::i;:::-;:78;;;;:::i;:::-;22283:15;;;;;;;;;;;22275:34;;;;:114;;;;:::i;:::-;22247:142;21877:520;;21774:623;;;:::o;20657:133::-;20733:15;;;;;;;;;;;20719:29;;:10;:29;;;20710:39;;;;;;20777:5;20760;:14;20766:7;20760:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20657:133;:::o;13418:28::-;;;;:::o;14087:25::-;;;;:::o;20471:174::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20552:6:::1;20547:91;20568:6;:13;20564:1;:17;20547:91;;;20622:4;20603:5;:16;20609:6;20616:1;20609:9;;;;;;;;:::i;:::-;;;;;;;;20603:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20583:3;;;;;:::i;:::-;;;;20547:91;;;;20471:174:::0;:::o;3340:93::-;3398:5;3423:2;3416:9;;3340:93;:::o;6027:215::-;6115:4;6132:80;6141:12;:10;:12::i;:::-;6155:7;6201:10;6164:11;:25;6176:12;:10;:12::i;:::-;6164:25;;;;;;;;;;;;;;;:34;6190:7;6164:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6132:8;:80::i;:::-;6230:4;6223:11;;6027:215;;;;:::o;14218:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20227:137::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20326:7:::1;20317:6;;:16;;;;;;;;;;;;;;;;;;20351:5;20344:4;;:12;;;;;;;;;;;;;;;;;;20227:137:::0;;:::o;13383:26::-;;;;;;;;;;;;;:::o;13453:29::-;;;;:::o;21176:109::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21271:6:::1;21262;:15;;;;:::i;:::-;21248:11;:29;;;;21176:109:::0;:::o;20114:105::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20202:9:::1;20189:10;;:22;;;;;;;;;;;;;;;;;;20114:105:::0;:::o;13353:23::-;;;;;;;;;;;;;:::o;19992:114::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20089:9:::1;20071:15;;:27;;;;;;;;;;;;;;;;;;19992:114:::0;:::o;3669:127::-;3743:7;3770:9;:18;3780:7;3770:18;;;;;;;;;;;;;;;;3763:25;;3669:127;;;:::o;11949:94::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12014:21:::1;12032:1;12014:9;:21::i;:::-;11949:94::o:0;14002:33::-;;;;;;;;;;;;;;;;;;;:::o;22405:168::-;22457:4;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22488:13:::1;:11;:13::i;:::-;22474:11;:27;;;;22530:13;:11;:13::i;:::-;22512:15;:31;;;;22561:4;22554:11;;22405:168:::0;:::o;13664:75::-;;;;;;;;;;;;;:::o;19111:275::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19198:14:::1;;;;;;;;;;;19197:15;19189:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19267:4;19250:14;;:21;;;;;;;;;;;;;;;;;;19296:4;19282:11;;:18;;;;;;;;;;;;;;;;;;19327:12;19311:13;:28;;;;19363:15;19350:10;:28;;;;19111:275:::0;:::o;13546:47::-;;;;:::o;21422:183::-;21524:15;;;;;;;;;;;21510:29;;:10;:29;;;21501:39;;;;;;21558:12;21551:29;;;21581:7;:5;:7::i;:::-;21590:6;21551:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21422:183;;:::o;11726:87::-;11772:7;11799:6;;;;;;;;;;;11792:13;;11726:87;:::o;2597:104::-;2653:13;2686:7;2679:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2597:104;:::o;18993:110::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19085:10:::1;19069:13;:26;;;;18993:110:::0;:::o;21613:153::-;21694:15;;;;;;;;;;;21680:29;;:10;:29;;;21671:39;;;;;;21721:37;21748:9;21729:7;:5;:7::i;:::-;21721:26;;;;:37;;;;:::i;:::-;21613:153;:::o;6745:377::-;6838:4;6855:24;6882:11;:25;6894:12;:10;:12::i;:::-;6882:25;;;;;;;;;;;;;;;:34;6908:7;6882:34;;;;;;;;;;;;;;;;6855:61;;6955:15;6935:16;:35;;6927:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7023:67;7032:12;:10;:12::i;:::-;7046:7;7074:15;7055:16;:34;;;;:::i;:::-;7023:8;:67::i;:::-;7110:4;7103:11;;;6745:377;;;;:::o;13293:19::-;;;;;;;;;;;;;:::o;4009:175::-;4095:4;4112:42;4122:12;:10;:12::i;:::-;4136:9;4147:6;4112:9;:42::i;:::-;4172:4;4165:11;;4009:175;;;;:::o;13600:51::-;;;;:::o;19866:114::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19963:9:::1;19945:15;;:27;;;;;;;;;;;;;;;;;;19866:114:::0;:::o;20798:225::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20897:15:::1;;;;;;;;;;;20883:29;;:10;:29;;;20874:39;;;::::0;::::1;;20929:6;20924:92;20945:6;:13;20941:1;:17;20924:92;;;20999:5;20980;:16;20986:6;20993:1;20986:9;;;;;;;;:::i;:::-;;;;;;;;20980:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20960:3;;;;;:::i;:::-;;;;20924:92;;;;20798:225:::0;:::o;21297:117::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21400:6:::1;21391;:15;;;;:::i;:::-;21373;:33;;;;21297:117:::0;:::o;14162:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4247:151::-;4336:7;4363:11;:18;4375:5;4363:18;;;;;;;;;;;;;;;:27;4382:7;4363:27;;;;;;;;;;;;;;;;4356:34;;4247:151;;;;:::o;18892:93::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18972:5:::1;18958:11;;:19;;;;;;;;;;;;;;;;;;18892:93:::0;:::o;21031:133::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21151:5:::1;21122:16;:26;21139:8;21122:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;21031:133:::0;;:::o;19394:220::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19509:41:::1;;;;;;;;19515:10;19509:41;;;;19527:10;19509:41;;;;19539:10;19509:41;;::::0;19501:5:::1;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;19596:10;19583;19570;:23;;;;:::i;:::-;:36;;;;:::i;:::-;19561:6;:45;;;;19394:220:::0;;;:::o;12051:192::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12160:1:::1;12140:22;;:8;:22;;;;12132:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12216:19;12226:8;12216:9;:19::i;:::-;12051:192:::0;:::o;14042:38::-;;;;;;;;;;;;;;;;;;;:::o;13265:21::-;;;;;;;;;;;;;:::o;20372:91::-;11872:12;:10;:12::i;:::-;11861:23;;:7;:5;:7::i;:::-;:23;;;11853:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20451:4:::1;20434:5;:14;20440:7;20434:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;20372:91:::0;:::o;94:98::-;147:7;174:10;167:17;;94:98;:::o;10101:346::-;10220:1;10203:19;;:5;:19;;;;10195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10301:1;10282:21;;:7;:21;;;;10274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10385:6;10355:11;:18;10367:5;10355:18;;;;;;;;;;;;;;;:27;10374:7;10355:27;;;;;;;;;;;;;;;:36;;;;10423:7;10407:32;;10416:5;10407:32;;;10432:6;10407:32;;;;;;:::i;:::-;;;;;;;;10101:346;;;:::o;14983:1573::-;15099:1;15090:6;:10;15082:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15166:5;:13;15172:6;15166:13;;;;;;;;;;;;;;;;;;;;;;;;;15165:14;:35;;;;;15184:5;:16;15190:9;15184:16;;;;;;;;;;;;;;;;;;;;;;;;;15183:17;15165:35;15157:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15273:16;:24;15290:6;15273:24;;;;;;;;;;;;;;;;;;;;;;;;;15272:25;:57;;;;;15302:16;:27;15319:9;15302:27;;;;;;;;;;;;;;;;;;;;;;;;;15301:28;15272:57;:70;;;;;15334:8;;;;;;;;;;;15333:9;15272:70;15269:589;;;15366:14;;;;;;;;;;;15358:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15454:12;15441:10;;15425:13;;:26;;;;:::i;:::-;:41;15422:183;;;15502:4;;;;;;;;;;;15489:17;;:9;:17;;;15486:45;;15527:4;15508:5;:16;15514:9;15508:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15486:45;15563:4;;;;;;;;;;;15553:14;;:6;:14;;;15550:39;;15585:4;15569:5;:13;15575:6;15569:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15550:39;15422:183;15637:11;;15627:6;:21;;15619:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15713:4;;;;;;;;;;;15700:17;;:9;:17;;;15697:150;;15778:15;;15768:6;15745:20;15755:9;15745;:20::i;:::-;:29;;;;:::i;:::-;:48;;15737:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15697:150;15269:589;15870:11;15977:8;;;;;;;;;;;:36;;;;15989:16;:24;16006:6;15989:24;;;;;;;;;;;;;;;;;;;;;;;;;15977:36;:67;;;;16017:16;:27;16034:9;16017:27;;;;;;;;;;;;;;;;;;;;;;;;;15977:67;15973:257;;;16052:1;16046:7;;15973:257;;;16134:4;;;;;;;;;;;16121:17;;:9;:17;;;16118:100;;;16168:3;16155:10;;16146:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16140:31;;16118:100;;;16215:3;16206:6;;16197;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16191:27;;16118:100;15973:257;16351:11;;;;;;;;;;;:24;;;;;16367:8;;;;;;;;;;;16366:9;16351:24;:42;;;;;16389:4;;;;;;;;;;;16379:14;;:6;:14;;;;16351:42;:53;;;;;16403:1;16397:3;:7;16351:53;16347:72;;;16406:13;:11;:13::i;:::-;16347:72;16432:48;16448:6;16456:9;16476:3;16467:6;:12;;;;:::i;:::-;16432:15;:48::i;:::-;16500:1;16494:3;:7;16491:55;;;16503:43;16519:6;16535:4;16542:3;16503:15;:43::i;:::-;16491:55;15071:1485;14983:1573;;;:::o;17978:400::-;18044:21;18082:1;18068:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18044:40;;18113:4;18095;18100:1;18095:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18139:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18129:4;18134:1;18129:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18165:53;18182:4;18197:6;;;;;;;;;;;18206:11;18165:8;:53::i;:::-;18257:6;;;;;;;;;;;:57;;;18315:11;18328:1;18331:4;18345;18352:15;18257:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18033:345;17978:400;:::o;11171:317::-;11286:6;11261:21;:31;;11253:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11340:12;11358:9;:14;;11380:6;11358:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11339:52;;;11410:7;11402:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11242:246;11171:317;;:::o;12251:173::-;12307:16;12326:6;;;;;;;;;;;12307:25;;12352:8;12343:6;;:17;;;;;;;;;;;;;;;;;;12407:8;12376:40;;12397:8;12376:40;;;;;;;;;;;;12296:128;12251:173;:::o;16564:1404::-;14303:8;;;;;;;;;;;14298:104;;14339:4;14328:8;;:15;;;;;;;;;;;;;;;;;;16613:23:::1;16639:24;16657:4;16639:9;:24::i;:::-;16613:50;;16697:13;;16678:15;:32;16674:1287;;16784:19;16819:1;16806:10;;:14;;;;:::i;:::-;16784:36;;16835:32;16910:11;16888:9;:19;;;16870:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16835:86;;16936:14;16971:24;16953:15;:42;;;;:::i;:::-;16936:59;;17016:22;17041:21;17016:46;;17083:24;17100:6;17083:16;:24::i;:::-;17128:20;17175:14;17151:21;:38;;;;:::i;:::-;17128:61;;17204:19;17255:9;:19;;;17241:11;:33;;;;:::i;:::-;17225:12;:50;;;;:::i;:::-;17204:71;;17290:29;17336:9;:19;;;17322:11;:33;;;;:::i;:::-;17290:65;;17403:1;17379:21;:25;17376:170;;;17469:61;17482:24;17508:21;17469:12;:61::i;:::-;17376:170;17566:20;17607:9;:19;;;17603:1;17589:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17566:60;;17659:1;17644:12;:16;17641:103;;;17680:48;17715:12;17688:15;;;;;;;;;;;17680:34;;;;:48;;;;:::i;:::-;17641:103;17772:20;17813:9;:19;;;17809:1;17795:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17772:60;;17865:1;17850:12;:16;17847:103;;;17886:48;17921:12;17894:15;;;;;;;;;;;17886:34;;;;:48;;;;:::i;:::-;17847:103;16712:1249;;;;;;;;;16674:1287;16602:1366;14385:5:::0;14374:8;;:16;;;;;;;;;;;;;;;;;;14298:104;16564:1404::o;7612:604::-;7736:1;7718:20;;:6;:20;;;;7710:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7820:1;7799:23;;:9;:23;;;;7791:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7875:47;7896:6;7904:9;7915:6;7875:20;:47::i;:::-;7935:21;7959:9;:17;7969:6;7959:17;;;;;;;;;;;;;;;;7935:41;;8012:6;7995:13;:23;;7987:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8108:6;8092:13;:22;;;;:::i;:::-;8072:9;:17;8082:6;8072:17;;;;;;;;;;;;;;;:42;;;;8149:6;8125:9;:20;8135:9;8125:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8190:9;8173:35;;8182:6;8173:35;;;8201:6;8173:35;;;;;;:::i;:::-;;;;;;;;7699:517;7612:604;;;:::o;18386:498::-;18534:53;18551:4;18566:6;;;;;;;;;;;18575:11;18534:8;:53::i;:::-;18630:6;;;;;;;;;;;:22;;;18660:9;18693:4;18713:11;18739:1;18782;18825:10;;;;;;;;;;;18850:15;18630:246;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18386:498;;:::o;11050:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:122;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:619::-;2509:6;2517;2525;2574:2;2562:9;2553:7;2549:23;2545:32;2542:119;;;2580:79;;:::i;:::-;2542:119;2700:1;2725:53;2770:7;2761:6;2750:9;2746:22;2725:53;:::i;:::-;2715:63;;2671:117;2827:2;2853:53;2898:7;2889:6;2878:9;2874:22;2853:53;:::i;:::-;2843:63;;2798:118;2955:2;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2926:118;2432:619;;;;;:::o;3057:126::-;3094:7;3134:42;3127:5;3123:54;3112:65;;3057:126;;;:::o;3189:96::-;3226:7;3255:24;3273:5;3255:24;:::i;:::-;3244:35;;3189:96;;;:::o;3291:122::-;3364:24;3382:5;3364:24;:::i;:::-;3357:5;3354:35;3344:63;;3403:1;3400;3393:12;3344:63;3291:122;:::o;3419:139::-;3465:5;3503:6;3490:20;3481:29;;3519:33;3546:5;3519:33;:::i;:::-;3419:139;;;;:::o;3564:474::-;3632:6;3640;3689:2;3677:9;3668:7;3664:23;3660:32;3657:119;;;3695:79;;:::i;:::-;3657:119;3815:1;3840:53;3885:7;3876:6;3865:9;3861:22;3840:53;:::i;:::-;3830:63;;3786:117;3942:2;3968:53;4013:7;4004:6;3993:9;3989:22;3968:53;:::i;:::-;3958:63;;3913:118;3564:474;;;;;:::o;4044:90::-;4078:7;4121:5;4114:13;4107:21;4096:32;;4044:90;;;:::o;4140:109::-;4221:21;4236:5;4221:21;:::i;:::-;4216:3;4209:34;4140:109;;:::o;4255:210::-;4342:4;4380:2;4369:9;4365:18;4357:26;;4393:65;4455:1;4444:9;4440:17;4431:6;4393:65;:::i;:::-;4255:210;;;;:::o;4471:118::-;4558:24;4576:5;4558:24;:::i;:::-;4553:3;4546:37;4471:118;;:::o;4595:222::-;4688:4;4726:2;4715:9;4711:18;4703:26;;4739:71;4807:1;4796:9;4792:17;4783:6;4739:71;:::i;:::-;4595:222;;;;:::o;4823:619::-;4900:6;4908;4916;4965:2;4953:9;4944:7;4940:23;4936:32;4933:119;;;4971:79;;:::i;:::-;4933:119;5091:1;5116:53;5161:7;5152:6;5141:9;5137:22;5116:53;:::i;:::-;5106:63;;5062:117;5218:2;5244:53;5289:7;5280:6;5269:9;5265:22;5244:53;:::i;:::-;5234:63;;5189:118;5346:2;5372:53;5417:7;5408:6;5397:9;5393:22;5372:53;:::i;:::-;5362:63;;5317:118;4823:619;;;;;:::o;5448:329::-;5507:6;5556:2;5544:9;5535:7;5531:23;5527:32;5524:119;;;5562:79;;:::i;:::-;5524:119;5682:1;5707:53;5752:7;5743:6;5732:9;5728:22;5707:53;:::i;:::-;5697:63;;5653:117;5448:329;;;;:::o;5783:117::-;5892:1;5889;5882:12;5906:180;5954:77;5951:1;5944:88;6051:4;6048:1;6041:15;6075:4;6072:1;6065:15;6092:281;6175:27;6197:4;6175:27;:::i;:::-;6167:6;6163:40;6305:6;6293:10;6290:22;6269:18;6257:10;6254:34;6251:62;6248:88;;;6316:18;;:::i;:::-;6248:88;6356:10;6352:2;6345:22;6135:238;6092:281;;:::o;6379:129::-;6413:6;6440:20;;:::i;:::-;6430:30;;6469:33;6497:4;6489:6;6469:33;:::i;:::-;6379:129;;;:::o;6514:311::-;6591:4;6681:18;6673:6;6670:30;6667:56;;;6703:18;;:::i;:::-;6667:56;6753:4;6745:6;6741:17;6733:25;;6813:4;6807;6803:15;6795:23;;6514:311;;;:::o;6831:117::-;6940:1;6937;6930:12;6971:710;7067:5;7092:81;7108:64;7165:6;7108:64;:::i;:::-;7092:81;:::i;:::-;7083:90;;7193:5;7222:6;7215:5;7208:21;7256:4;7249:5;7245:16;7238:23;;7309:4;7301:6;7297:17;7289:6;7285:30;7338:3;7330:6;7327:15;7324:122;;;7357:79;;:::i;:::-;7324:122;7472:6;7455:220;7489:6;7484:3;7481:15;7455:220;;;7564:3;7593:37;7626:3;7614:10;7593:37;:::i;:::-;7588:3;7581:50;7660:4;7655:3;7651:14;7644:21;;7531:144;7515:4;7510:3;7506:14;7499:21;;7455:220;;;7459:21;7073:608;;6971:710;;;;;:::o;7704:370::-;7775:5;7824:3;7817:4;7809:6;7805:17;7801:27;7791:122;;7832:79;;:::i;:::-;7791:122;7949:6;7936:20;7974:94;8064:3;8056:6;8049:4;8041:6;8037:17;7974:94;:::i;:::-;7965:103;;7781:293;7704:370;;;;:::o;8080:539::-;8164:6;8213:2;8201:9;8192:7;8188:23;8184:32;8181:119;;;8219:79;;:::i;:::-;8181:119;8367:1;8356:9;8352:17;8339:31;8397:18;8389:6;8386:30;8383:117;;;8419:79;;:::i;:::-;8383:117;8524:78;8594:7;8585:6;8574:9;8570:22;8524:78;:::i;:::-;8514:88;;8310:302;8080:539;;;;:::o;8625:86::-;8660:7;8700:4;8693:5;8689:16;8678:27;;8625:86;;;:::o;8717:112::-;8800:22;8816:5;8800:22;:::i;:::-;8795:3;8788:35;8717:112;;:::o;8835:214::-;8924:4;8962:2;8951:9;8947:18;8939:26;;8975:67;9039:1;9028:9;9024:17;9015:6;8975:67;:::i;:::-;8835:214;;;;:::o;9055:111::-;9107:7;9136:24;9154:5;9136:24;:::i;:::-;9125:35;;9055:111;;;:::o;9172:152::-;9260:39;9293:5;9260:39;:::i;:::-;9253:5;9250:50;9240:78;;9314:1;9311;9304:12;9240:78;9172:152;:::o;9330:169::-;9391:5;9429:6;9416:20;9407:29;;9445:48;9487:5;9445:48;:::i;:::-;9330:169;;;;:::o;9505:504::-;9588:6;9596;9645:2;9633:9;9624:7;9620:23;9616:32;9613:119;;;9651:79;;:::i;:::-;9613:119;9771:1;9796:68;9856:7;9847:6;9836:9;9832:22;9796:68;:::i;:::-;9786:78;;9742:132;9913:2;9939:53;9984:7;9975:6;9964:9;9960:22;9939:53;:::i;:::-;9929:63;;9884:118;9505:504;;;;;:::o;10015:329::-;10074:6;10123:2;10111:9;10102:7;10098:23;10094:32;10091:119;;;10129:79;;:::i;:::-;10091:119;10249:1;10274:53;10319:7;10310:6;10299:9;10295:22;10274:53;:::i;:::-;10264:63;;10220:117;10015:329;;;;:::o;10350:442::-;10499:4;10537:2;10526:9;10522:18;10514:26;;10550:71;10618:1;10607:9;10603:17;10594:6;10550:71;:::i;:::-;10631:72;10699:2;10688:9;10684:18;10675:6;10631:72;:::i;:::-;10713;10781:2;10770:9;10766:18;10757:6;10713:72;:::i;:::-;10350:442;;;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:468::-;11933:6;11941;11990:2;11978:9;11969:7;11965:23;11961:32;11958:119;;;11996:79;;:::i;:::-;11958:119;12116:1;12141:53;12186:7;12177:6;12166:9;12162:22;12141:53;:::i;:::-;12131:63;;12087:117;12243:2;12269:50;12311:7;12302:6;12291:9;12287:22;12269:50;:::i;:::-;12259:60;;12214:115;11868:468;;;;;:::o;12342:60::-;12370:3;12391:5;12384:12;;12342:60;;;:::o;12408:142::-;12458:9;12491:53;12509:34;12518:24;12536:5;12518:24;:::i;:::-;12509:34;:::i;:::-;12491:53;:::i;:::-;12478:66;;12408:142;;;:::o;12556:126::-;12606:9;12639:37;12670:5;12639:37;:::i;:::-;12626:50;;12556:126;;;:::o;12688:141::-;12753:9;12786:37;12817:5;12786:37;:::i;:::-;12773:50;;12688:141;;;:::o;12835:161::-;12937:52;12983:5;12937:52;:::i;:::-;12932:3;12925:65;12835:161;;:::o;13002:252::-;13110:4;13148:2;13137:9;13133:18;13125:26;;13161:86;13244:1;13233:9;13229:17;13220:6;13161:86;:::i;:::-;13002:252;;;;:::o;13260:180::-;13308:77;13305:1;13298:88;13405:4;13402:1;13395:15;13429:4;13426:1;13419:15;13446:320;13490:6;13527:1;13521:4;13517:12;13507:22;;13574:1;13568:4;13564:12;13595:18;13585:81;;13651:4;13643:6;13639:17;13629:27;;13585:81;13713:2;13705:6;13702:14;13682:18;13679:38;13676:84;;;13732:18;;:::i;:::-;13676:84;13497:269;13446:320;;;:::o;13772:182::-;13912:34;13908:1;13900:6;13896:14;13889:58;13772:182;:::o;13960:366::-;14102:3;14123:67;14187:2;14182:3;14123:67;:::i;:::-;14116:74;;14199:93;14288:3;14199:93;:::i;:::-;14317:2;14312:3;14308:12;14301:19;;13960:366;;;:::o;14332:419::-;14498:4;14536:2;14525:9;14521:18;14513:26;;14585:9;14579:4;14575:20;14571:1;14560:9;14556:17;14549:47;14613:131;14739:4;14613:131;:::i;:::-;14605:139;;14332:419;;;:::o;14757:180::-;14805:77;14802:1;14795:88;14902:4;14899:1;14892:15;14926:4;14923:1;14916:15;14943:305;14983:3;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15036:20;15054:1;15036:20;:::i;:::-;15031:25;;15190:1;15122:66;15118:74;15115:1;15112:81;15109:107;;;15196:18;;:::i;:::-;15109:107;15240:1;15237;15233:9;15226:16;;14943:305;;;;:::o;15254:227::-;15394:34;15390:1;15382:6;15378:14;15371:58;15463:10;15458:2;15450:6;15446:15;15439:35;15254:227;:::o;15487:366::-;15629:3;15650:67;15714:2;15709:3;15650:67;:::i;:::-;15643:74;;15726:93;15815:3;15726:93;:::i;:::-;15844:2;15839:3;15835:12;15828:19;;15487:366;;;:::o;15859:419::-;16025:4;16063:2;16052:9;16048:18;16040:26;;16112:9;16106:4;16102:20;16098:1;16087:9;16083:17;16076:47;16140:131;16266:4;16140:131;:::i;:::-;16132:139;;15859:419;;;:::o;16284:191::-;16324:4;16344:20;16362:1;16344:20;:::i;:::-;16339:25;;16378:20;16396:1;16378:20;:::i;:::-;16373:25;;16417:1;16414;16411:8;16408:34;;;16422:18;;:::i;:::-;16408:34;16467:1;16464;16460:9;16452:17;;16284:191;;;;:::o;16481:348::-;16521:7;16544:20;16562:1;16544:20;:::i;:::-;16539:25;;16578:20;16596:1;16578:20;:::i;:::-;16573:25;;16766:1;16698:66;16694:74;16691:1;16688:81;16683:1;16676:9;16669:17;16665:105;16662:131;;;16773:18;;:::i;:::-;16662:131;16821:1;16818;16814:9;16803:20;;16481:348;;;;:::o;16835:180::-;16883:77;16880:1;16873:88;16980:4;16977:1;16970:15;17004:4;17001:1;16994:15;17021:185;17061:1;17078:20;17096:1;17078:20;:::i;:::-;17073:25;;17112:20;17130:1;17112:20;:::i;:::-;17107:25;;17151:1;17141:35;;17156:18;;:::i;:::-;17141:35;17198:1;17195;17191:9;17186:14;;17021:185;;;;:::o;17212:180::-;17260:77;17257:1;17250:88;17357:4;17354:1;17347:15;17381:4;17378:1;17371:15;17398:233;17437:3;17460:24;17478:5;17460:24;:::i;:::-;17451:33;;17506:66;17499:5;17496:77;17493:103;;;17576:18;;:::i;:::-;17493:103;17623:1;17616:5;17612:13;17605:20;;17398:233;;;:::o;17637:172::-;17777:24;17773:1;17765:6;17761:14;17754:48;17637:172;:::o;17815:366::-;17957:3;17978:67;18042:2;18037:3;17978:67;:::i;:::-;17971:74;;18054:93;18143:3;18054:93;:::i;:::-;18172:2;18167:3;18163:12;18156:19;;17815:366;;;:::o;18187:419::-;18353:4;18391:2;18380:9;18376:18;18368:26;;18440:9;18434:4;18430:20;18426:1;18415:9;18411:17;18404:47;18468:131;18594:4;18468:131;:::i;:::-;18460:139;;18187:419;;;:::o;18612:332::-;18733:4;18771:2;18760:9;18756:18;18748:26;;18784:71;18852:1;18841:9;18837:17;18828:6;18784:71;:::i;:::-;18865:72;18933:2;18922:9;18918:18;18909:6;18865:72;:::i;:::-;18612:332;;;;;:::o;18950:137::-;19004:5;19035:6;19029:13;19020:22;;19051:30;19075:5;19051:30;:::i;:::-;18950:137;;;;:::o;19093:345::-;19160:6;19209:2;19197:9;19188:7;19184:23;19180:32;19177:119;;;19215:79;;:::i;:::-;19177:119;19335:1;19360:61;19413:7;19404:6;19393:9;19389:22;19360:61;:::i;:::-;19350:71;;19306:125;19093:345;;;;:::o;19444:224::-;19584:34;19580:1;19572:6;19568:14;19561:58;19653:7;19648:2;19640:6;19636:15;19629:32;19444:224;:::o;19674:366::-;19816:3;19837:67;19901:2;19896:3;19837:67;:::i;:::-;19830:74;;19913:93;20002:3;19913:93;:::i;:::-;20031:2;20026:3;20022:12;20015:19;;19674:366;;;:::o;20046:419::-;20212:4;20250:2;20239:9;20235:18;20227:26;;20299:9;20293:4;20289:20;20285:1;20274:9;20270:17;20263:47;20327:131;20453:4;20327:131;:::i;:::-;20319:139;;20046:419;;;:::o;20471:225::-;20611:34;20607:1;20599:6;20595:14;20588:58;20680:8;20675:2;20667:6;20663:15;20656:33;20471:225;:::o;20702:366::-;20844:3;20865:67;20929:2;20924:3;20865:67;:::i;:::-;20858:74;;20941:93;21030:3;20941:93;:::i;:::-;21059:2;21054:3;21050:12;21043:19;;20702:366;;;:::o;21074:419::-;21240:4;21278:2;21267:9;21263:18;21255:26;;21327:9;21321:4;21317:20;21313:1;21302:9;21298:17;21291:47;21355:131;21481:4;21355:131;:::i;:::-;21347:139;;21074:419;;;:::o;21499:223::-;21639:34;21635:1;21627:6;21623:14;21616:58;21708:6;21703:2;21695:6;21691:15;21684:31;21499:223;:::o;21728:366::-;21870:3;21891:67;21955:2;21950:3;21891:67;:::i;:::-;21884:74;;21967:93;22056:3;21967:93;:::i;:::-;22085:2;22080:3;22076:12;22069:19;;21728:366;;;:::o;22100:419::-;22266:4;22304:2;22293:9;22289:18;22281:26;;22353:9;22347:4;22343:20;22339:1;22328:9;22324:17;22317:47;22381:131;22507:4;22381:131;:::i;:::-;22373:139;;22100:419;;;:::o;22525:221::-;22665:34;22661:1;22653:6;22649:14;22642:58;22734:4;22729:2;22721:6;22717:15;22710:29;22525:221;:::o;22752:366::-;22894:3;22915:67;22979:2;22974:3;22915:67;:::i;:::-;22908:74;;22991:93;23080:3;22991:93;:::i;:::-;23109:2;23104:3;23100:12;23093:19;;22752:366;;;:::o;23124:419::-;23290:4;23328:2;23317:9;23313:18;23305:26;;23377:9;23371:4;23367:20;23363:1;23352:9;23348:17;23341:47;23405:131;23531:4;23405:131;:::i;:::-;23397:139;;23124:419;;;:::o;23549:228::-;23689:34;23685:1;23677:6;23673:14;23666:58;23758:11;23753:2;23745:6;23741:15;23734:36;23549:228;:::o;23783:366::-;23925:3;23946:67;24010:2;24005:3;23946:67;:::i;:::-;23939:74;;24022:93;24111:3;24022:93;:::i;:::-;24140:2;24135:3;24131:12;24124:19;;23783:366;;;:::o;24155:419::-;24321:4;24359:2;24348:9;24344:18;24336:26;;24408:9;24402:4;24398:20;24394:1;24383:9;24379:17;24372:47;24436:131;24562:4;24436:131;:::i;:::-;24428:139;;24155:419;;;:::o;24580:175::-;24720:27;24716:1;24708:6;24704:14;24697:51;24580:175;:::o;24761:366::-;24903:3;24924:67;24988:2;24983:3;24924:67;:::i;:::-;24917:74;;25000:93;25089:3;25000:93;:::i;:::-;25118:2;25113:3;25109:12;25102:19;;24761:366;;;:::o;25133:419::-;25299:4;25337:2;25326:9;25322:18;25314:26;;25386:9;25380:4;25376:20;25372:1;25361:9;25357:17;25350:47;25414:131;25540:4;25414:131;:::i;:::-;25406:139;;25133:419;;;:::o;25558:172::-;25698:24;25694:1;25686:6;25682:14;25675:48;25558:172;:::o;25736:366::-;25878:3;25899:67;25963:2;25958:3;25899:67;:::i;:::-;25892:74;;25975:93;26064:3;25975:93;:::i;:::-;26093:2;26088:3;26084:12;26077:19;;25736:366;;;:::o;26108:419::-;26274:4;26312:2;26301:9;26297:18;26289:26;;26361:9;26355:4;26351:20;26347:1;26336:9;26332:17;26325:47;26389:131;26515:4;26389:131;:::i;:::-;26381:139;;26108:419;;;:::o;26533:179::-;26673:31;26669:1;26661:6;26657:14;26650:55;26533:179;:::o;26718:366::-;26860:3;26881:67;26945:2;26940:3;26881:67;:::i;:::-;26874:74;;26957:93;27046:3;26957:93;:::i;:::-;27075:2;27070:3;27066:12;27059:19;;26718:366;;;:::o;27090:419::-;27256:4;27294:2;27283:9;27279:18;27271:26;;27343:9;27337:4;27333:20;27329:1;27318:9;27314:17;27307:47;27371:131;27497:4;27371:131;:::i;:::-;27363:139;;27090:419;;;:::o;27515:220::-;27655:34;27651:1;27643:6;27639:14;27632:58;27724:3;27719:2;27711:6;27707:15;27700:28;27515:220;:::o;27741:366::-;27883:3;27904:67;27968:2;27963:3;27904:67;:::i;:::-;27897:74;;27980:93;28069:3;27980:93;:::i;:::-;28098:2;28093:3;28089:12;28082:19;;27741:366;;;:::o;28113:419::-;28279:4;28317:2;28306:9;28302:18;28294:26;;28366:9;28360:4;28356:20;28352:1;28341:9;28337:17;28330:47;28394:131;28520:4;28394:131;:::i;:::-;28386:139;;28113:419;;;:::o;28538:143::-;28595:5;28626:6;28620:13;28611:22;;28642:33;28669:5;28642:33;:::i;:::-;28538:143;;;;:::o;28687:351::-;28757:6;28806:2;28794:9;28785:7;28781:23;28777:32;28774:119;;;28812:79;;:::i;:::-;28774:119;28932:1;28957:64;29013:7;29004:6;28993:9;28989:22;28957:64;:::i;:::-;28947:74;;28903:128;28687:351;;;;:::o;29044:85::-;29089:7;29118:5;29107:16;;29044:85;;;:::o;29135:158::-;29193:9;29226:61;29244:42;29253:32;29279:5;29253:32;:::i;:::-;29244:42;:::i;:::-;29226:61;:::i;:::-;29213:74;;29135:158;;;:::o;29299:147::-;29394:45;29433:5;29394:45;:::i;:::-;29389:3;29382:58;29299:147;;:::o;29452:114::-;29519:6;29553:5;29547:12;29537:22;;29452:114;;;:::o;29572:184::-;29671:11;29705:6;29700:3;29693:19;29745:4;29740:3;29736:14;29721:29;;29572:184;;;;:::o;29762:132::-;29829:4;29852:3;29844:11;;29882:4;29877:3;29873:14;29865:22;;29762:132;;;:::o;29900:108::-;29977:24;29995:5;29977:24;:::i;:::-;29972:3;29965:37;29900:108;;:::o;30014:179::-;30083:10;30104:46;30146:3;30138:6;30104:46;:::i;:::-;30182:4;30177:3;30173:14;30159:28;;30014:179;;;;:::o;30199:113::-;30269:4;30301;30296:3;30292:14;30284:22;;30199:113;;;:::o;30348:732::-;30467:3;30496:54;30544:5;30496:54;:::i;:::-;30566:86;30645:6;30640:3;30566:86;:::i;:::-;30559:93;;30676:56;30726:5;30676:56;:::i;:::-;30755:7;30786:1;30771:284;30796:6;30793:1;30790:13;30771:284;;;30872:6;30866:13;30899:63;30958:3;30943:13;30899:63;:::i;:::-;30892:70;;30985:60;31038:6;30985:60;:::i;:::-;30975:70;;30831:224;30818:1;30815;30811:9;30806:14;;30771:284;;;30775:14;31071:3;31064:10;;30472:608;;;30348:732;;;;:::o;31086:831::-;31349:4;31387:3;31376:9;31372:19;31364:27;;31401:71;31469:1;31458:9;31454:17;31445:6;31401:71;:::i;:::-;31482:80;31558:2;31547:9;31543:18;31534:6;31482:80;:::i;:::-;31609:9;31603:4;31599:20;31594:2;31583:9;31579:18;31572:48;31637:108;31740:4;31731:6;31637:108;:::i;:::-;31629:116;;31755:72;31823:2;31812:9;31808:18;31799:6;31755:72;:::i;:::-;31837:73;31905:3;31894:9;31890:19;31881:6;31837:73;:::i;:::-;31086:831;;;;;;;;:::o;31923:179::-;32063:31;32059:1;32051:6;32047:14;32040:55;31923:179;:::o;32108:366::-;32250:3;32271:67;32335:2;32330:3;32271:67;:::i;:::-;32264:74;;32347:93;32436:3;32347:93;:::i;:::-;32465:2;32460:3;32456:12;32449:19;;32108:366;;;:::o;32480:419::-;32646:4;32684:2;32673:9;32669:18;32661:26;;32733:9;32727:4;32723:20;32719:1;32708:9;32704:17;32697:47;32761:131;32887:4;32761:131;:::i;:::-;32753:139;;32480:419;;;:::o;32905:147::-;33006:11;33043:3;33028:18;;32905:147;;;;:::o;33058:114::-;;:::o;33178:398::-;33337:3;33358:83;33439:1;33434:3;33358:83;:::i;:::-;33351:90;;33450:93;33539:3;33450:93;:::i;:::-;33568:1;33563:3;33559:11;33552:18;;33178:398;;;:::o;33582:379::-;33766:3;33788:147;33931:3;33788:147;:::i;:::-;33781:154;;33952:3;33945:10;;33582:379;;;:::o;33967:245::-;34107:34;34103:1;34095:6;34091:14;34084:58;34176:28;34171:2;34163:6;34159:15;34152:53;33967:245;:::o;34218:366::-;34360:3;34381:67;34445:2;34440:3;34381:67;:::i;:::-;34374:74;;34457:93;34546:3;34457:93;:::i;:::-;34575:2;34570:3;34566:12;34559:19;;34218:366;;;:::o;34590:419::-;34756:4;34794:2;34783:9;34779:18;34771:26;;34843:9;34837:4;34833:20;34829:1;34818:9;34814:17;34807:47;34871:131;34997:4;34871:131;:::i;:::-;34863:139;;34590:419;;;:::o;35015:224::-;35155:34;35151:1;35143:6;35139:14;35132:58;35224:7;35219:2;35211:6;35207:15;35200:32;35015:224;:::o;35245:366::-;35387:3;35408:67;35472:2;35467:3;35408:67;:::i;:::-;35401:74;;35484:93;35573:3;35484:93;:::i;:::-;35602:2;35597:3;35593:12;35586:19;;35245:366;;;:::o;35617:419::-;35783:4;35821:2;35810:9;35806:18;35798:26;;35870:9;35864:4;35860:20;35856:1;35845:9;35841:17;35834:47;35898:131;36024:4;35898:131;:::i;:::-;35890:139;;35617:419;;;:::o;36042:222::-;36182:34;36178:1;36170:6;36166:14;36159:58;36251:5;36246:2;36238:6;36234:15;36227:30;36042:222;:::o;36270:366::-;36412:3;36433:67;36497:2;36492:3;36433:67;:::i;:::-;36426:74;;36509:93;36598:3;36509:93;:::i;:::-;36627:2;36622:3;36618:12;36611:19;;36270:366;;;:::o;36642:419::-;36808:4;36846:2;36835:9;36831:18;36823:26;;36895:9;36889:4;36885:20;36881:1;36870:9;36866:17;36859:47;36923:131;37049:4;36923:131;:::i;:::-;36915:139;;36642:419;;;:::o;37067:225::-;37207:34;37203:1;37195:6;37191:14;37184:58;37276:8;37271:2;37263:6;37259:15;37252:33;37067:225;:::o;37298:366::-;37440:3;37461:67;37525:2;37520:3;37461:67;:::i;:::-;37454:74;;37537:93;37626:3;37537:93;:::i;:::-;37655:2;37650:3;37646:12;37639:19;;37298:366;;;:::o;37670:419::-;37836:4;37874:2;37863:9;37859:18;37851:26;;37923:9;37917:4;37913:20;37909:1;37898:9;37894:17;37887:47;37951:131;38077:4;37951:131;:::i;:::-;37943:139;;37670:419;;;:::o;38095:807::-;38344:4;38382:3;38371:9;38367:19;38359:27;;38396:71;38464:1;38453:9;38449:17;38440:6;38396:71;:::i;:::-;38477:72;38545:2;38534:9;38530:18;38521:6;38477:72;:::i;:::-;38559:80;38635:2;38624:9;38620:18;38611:6;38559:80;:::i;:::-;38649;38725:2;38714:9;38710:18;38701:6;38649:80;:::i;:::-;38739:73;38807:3;38796:9;38792:19;38783:6;38739:73;:::i;:::-;38822;38890:3;38879:9;38875:19;38866:6;38822:73;:::i;:::-;38095:807;;;;;;;;;:::o;38908:143::-;38965:5;38996:6;38990:13;38981:22;;39012:33;39039:5;39012:33;:::i;:::-;38908:143;;;;:::o;39057:663::-;39145:6;39153;39161;39210:2;39198:9;39189:7;39185:23;39181:32;39178:119;;;39216:79;;:::i;:::-;39178:119;39336:1;39361:64;39417:7;39408:6;39397:9;39393:22;39361:64;:::i;:::-;39351:74;;39307:128;39474:2;39500:64;39556:7;39547:6;39536:9;39532:22;39500:64;:::i;:::-;39490:74;;39445:129;39613:2;39639:64;39695:7;39686:6;39675:9;39671:22;39639:64;:::i;:::-;39629:74;;39584:129;39057:663;;;;;:::o
Swarm Source
ipfs://4ac9df5dc42720105f9c3404d0f4715d2d3216ecdc835d05959e56abe7e3d402
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.