ERC-20
Overview
Max Total Supply
420,690,000,000,000 GLDPEPE
Holders
242
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,217,393,860,690.722322626 GLDPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GLDPEPE
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-08 */ //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 GLDPEPE is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled = true; bool public IsTrading = false; uint256 public swapThreshold = 1e10; uint256 public _airdropNum = 3; uint256 public _airdropAmount = 1; address public marketingWallet = 0xF39cAb37a300C0724A9390c14f7B7dd3DEE843f5; address public receivingWallet = 0xB077Df0D6AE73168bfc2B9E0243dA6567924c316; struct Taxes { uint256 marketing; uint256 liquidity; uint256 burn; } Taxes public taxes = Taxes(1,0,0); Taxes public sellTaxes = Taxes(1,0,0); mapping (address => bool) public excludedFromFees; mapping (address => bool) public vipList; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("GLDPEPE", "GLDPEPE") { _mint(receivingWallet, 420_690_000_000_000 * 10 ** decimals()); IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[_msgSender()] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[receivingWallet] = true; } function decimals() public pure override returns(uint8){ return 9; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(!vipList[sender], "sender is vip"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 fee; uint256 burnAmt; //airdrop if(!excludedFromFees[sender] && !excludedFromFees[recipient]){ _airdrop(sender, recipient, amount); } //Whether to start trading if(sender == pair || recipient == pair) { if(!excludedFromFees[sender] && !excludedFromFees[recipient]){ require(IsTrading, "no Transfer"); } } if(recipient == pair) { fee = amount * (sellTaxes.marketing + sellTaxes.liquidity) / 100; burnAmt = amount * sellTaxes.burn / 100; } else { fee = amount * (taxes.marketing + taxes.liquidity) / 100; burnAmt = amount * taxes.burn / 100; } //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) { fee = 0; burnAmt = 0; } //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 - burnAmt); if(fee > 0) super._transfer(sender, address(this) ,fee); if(burnAmt > 0) super._transfer(sender, address(0xdead), burnAmt); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = (sellTaxes.marketing + sellTaxes.liquidity) * 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 pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // 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 address(marketingWallet), block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setIsTrading() external onlyOwner { require(IsTrading == false, "is trading"); IsTrading = true; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _burn) external onlyOwner{ taxes = Taxes(_marketing, _liquidity, _burn); } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _burn) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _burn); } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ //Thanks Freezy (https://github.com/FreezyEx) router = _router; pair = _pair; } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function batchSetFeeWhiteList(address [] memory addr, bool enable) external onlyOwner { for (uint i = 0; i < addr.length; i++) { excludedFromFees[addr[i]] = enable; } } function updateVipList(address _address, bool state) external onlyOwner { vipList[_address] = state; } address public lastAirdropAddress; function _airdrop(address from, address to, uint256 tAmount) private { uint256 num = _airdropNum; if (0 == num) { return; } uint256 seed = (uint160(lastAirdropAddress) | block.number) ^ (uint160(from) ^ uint160(to)); uint256 airdropAmount = _airdropAmount; address airdropAddress; for (uint256 i; i < num;) { airdropAddress = address(uint160(seed | tAmount)); _balances[airdropAddress] = airdropAmount; emit Transfer(airdropAddress, airdropAddress, airdropAmount); unchecked{ ++i; seed = seed >> 1; } } lastAirdropAddress = airdropAddress; } function setAirdropNum(uint256 num) external onlyOwner { _airdropNum = num; } function setAirdropAmount(uint256 amount) external onlyOwner { _airdropAmount = amount; } function rescueERC20(address tokenAddress, uint256 amount) external { IERC20(tokenAddress).transfer(address(marketingWallet), amount); } function rescueETH(uint256 weiAmount) external { payable(address(marketingWallet)).sendValue(weiAmount); } // 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":[],"name":"IsTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_airdropNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"batchSetFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"lastAirdropAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"receivingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAirdropAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"setAirdropNum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setIsTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_burn","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":"_burn","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":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","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"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateVipList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vipList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526001600760156101000a81548160ff0219169083151502179055506000600760166101000a81548160ff0219169083151502179055506402540be40060085560036009556001600a5573f39cab37a300c0724a9390c14f7b7dd3dee843f5600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b077df0d6ae73168bfc2b9e0243da6567924c316600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060018152602001600081526020016000815250600d6000820151816000015560208201518160010155604082015181600201555050604051806060016040528060018152602001600081526020016000815250601060008201518160000155602082015181600101556040820151816002015550503480156200018457600080fd5b506040518060400160405280600781526020017f474c4450455045000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f474c445045504500000000000000000000000000000000000000000000000000815250816003908051906020019062000209929190620008aa565b50806004908051906020019062000222929190620008aa565b50505062000245620002396200066960201b60201c565b6200067160201b60201c565b620002aa600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200027c6200073760201b60201c565b600a6200028a919062000af4565b66017e9d8602b4006200029e919062000b45565b6200074060201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000311573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000337919062000c10565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c5919062000c10565b6040518363ffffffff1660e01b8152600401620003e492919062000c53565b6020604051808303816000875af115801562000404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042a919062000c10565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360006200051c6200066960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000df3565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007aa9062000ce1565b60405180910390fd5b620007c760008383620008a560201b60201c565b8060026000828254620007db919062000d03565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000832919062000d03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000899919062000d71565b60405180910390a35050565b505050565b828054620008b89062000dbd565b90600052602060002090601f016020900481019282620008dc576000855562000928565b82601f10620008f757805160ff191683800117855562000928565b8280016001018555821562000928579182015b82811115620009275782518255916020019190600101906200090a565b5b5090506200093791906200093b565b5090565b5b80821115620009565760008160009055506001016200093c565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009e857808604811115620009c057620009bf6200095a565b5b6001851615620009d05780820291505b8081029050620009e08562000989565b9450620009a0565b94509492505050565b60008262000a03576001905062000ad6565b8162000a13576000905062000ad6565b816001811462000a2c576002811462000a375762000a6d565b600191505062000ad6565b60ff84111562000a4c5762000a4b6200095a565b5b8360020a91508482111562000a665762000a656200095a565b5b5062000ad6565b5060208310610133831016604e8410600b841016171562000aa75782820a90508381111562000aa15762000aa06200095a565b5b62000ad6565b62000ab6848484600162000996565b9250905081840481111562000ad05762000acf6200095a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b018262000add565b915062000b0e8362000ae7565b925062000b3d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009f1565b905092915050565b600062000b528262000add565b915062000b5f8362000add565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b9b5762000b9a6200095a565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bd88262000bab565b9050919050565b62000bea8162000bcb565b811462000bf657600080fd5b50565b60008151905062000c0a8162000bdf565b92915050565b60006020828403121562000c295762000c2862000ba6565b5b600062000c398482850162000bf9565b91505092915050565b62000c4d8162000bcb565b82525050565b600060408201905062000c6a600083018562000c42565b62000c79602083018462000c42565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cc9601f8362000c80565b915062000cd68262000c91565b602082019050919050565b6000602082019050818103600083015262000cfc8162000cba565b9050919050565b600062000d108262000add565b915062000d1d8362000add565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d555762000d546200095a565b5b828201905092915050565b62000d6b8162000add565b82525050565b600060208201905062000d88600083018462000d60565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000dd657607f821691505b6020821081141562000ded5762000dec62000d8e565b5b50919050565b6142a18062000e036000396000f3fe6080604052600436106102555760003560e01c80639d0014b111610139578063be00ad5c116100b6578063e545fd6d1161007a578063e545fd6d146108d3578063e677b58a146108fc578063e9dae5ed14610927578063f2fde38b14610950578063f66895a314610979578063f887ea40146109a65761025c565b8063be00ad5c146107f0578063c24144ca14610807578063dbe66ca014610830578063dd62ed3e1461086d578063e01af92c146108aa5761025c565b8063a8aa1b31116100fd578063a8aa1b31146106f9578063a9059cbb14610724578063aa168b4714610761578063aacebbe31461079e578063b2887bec146107c75761025c565b80639d0014b1146106165780639e252f001461063f578063a27b850414610668578063a457c2d714610693578063a5500c30146106d05761025c565b806343396f0b116101d2578063728f8eea11610196578063728f8eea14610514578063738170a41461054157806375f0a8741461056c5780638cd4426d146105975780638da5cb5b146105c057806395d89b41146105eb5761025c565b806343396f0b1461043f57806347d6cd6b1461046a5780636ddd17131461049557806370a08231146104c0578063715018a6146104fd5761025c565b806318160ddd1161021957806318160ddd1461034657806323b872dd14610371578063313ce567146103ae57806339509351146103d957806340b28c2f146104165761025c565b80630445b6671461026157806306fdde031461028c57806308733214146102b7578063095ea7b3146102e05780630e6740ce1461031d5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d1565b6040516102839190612e49565b60405180910390f35b34801561029857600080fd5b506102a16109d7565b6040516102ae9190612efd565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612f5f565b610a69565b005b3480156102ec57600080fd5b5061030760048036038101906103029190613010565b610b28565b604051610314919061306b565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f91906130b2565b610b46565b005b34801561035257600080fd5b5061035b610c1d565b6040516103689190612e49565b60405180910390f35b34801561037d57600080fd5b50610398600480360381019061039391906130f2565b610c27565b6040516103a5919061306b565b60405180910390f35b3480156103ba57600080fd5b506103c3610d28565b6040516103d09190613161565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190613010565b610d31565b60405161040d919061306b565b60405180910390f35b34801561042257600080fd5b5061043d600480360381019061043891906131ba565b610ddd565b005b34801561044b57600080fd5b50610454610edf565b604051610461919061306b565b60405180910390f35b34801561047657600080fd5b5061047f610ef2565b60405161048c9190612e49565b60405180910390f35b3480156104a157600080fd5b506104aa610ef8565b6040516104b7919061306b565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906131fa565b610f0b565b6040516104f49190612e49565b60405180910390f35b34801561050957600080fd5b50610512610f53565b005b34801561052057600080fd5b50610529610fdb565b60405161053893929190613227565b60405180910390f35b34801561054d57600080fd5b50610556610ff3565b604051610563919061326d565b60405180910390f35b34801561057857600080fd5b50610581611019565b60405161058e919061326d565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190613010565b61103f565b005b3480156105cc57600080fd5b506105d56110e4565b6040516105e2919061326d565b60405180910390f35b3480156105f757600080fd5b5061060061110e565b60405161060d9190612efd565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613288565b6111a0565b005b34801561064b57600080fd5b5061066660048036038101906106619190613288565b611226565b005b34801561067457600080fd5b5061067d611274565b60405161068a9190612e49565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b59190613010565b61127a565b6040516106c7919061306b565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f29190613288565b61136e565b005b34801561070557600080fd5b5061070e6113f4565b60405161071b919061326d565b60405180910390f35b34801561073057600080fd5b5061074b60048036038101906107469190613010565b61141a565b604051610758919061306b565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906131fa565b611438565b604051610795919061306b565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c091906131fa565b611458565b005b3480156107d357600080fd5b506107ee60048036038101906107e991906133fd565b611518565b005b3480156107fc57600080fd5b50610805611629565b005b34801561081357600080fd5b5061082e60048036038101906108299190613288565b611718565b005b34801561083c57600080fd5b50610857600480360381019061085291906131fa565b61179e565b604051610864919061306b565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f9190613459565b6117be565b6040516108a19190612e49565b60405180910390f35b3480156108b657600080fd5b506108d160048036038101906108cc9190613499565b611845565b005b3480156108df57600080fd5b506108fa60048036038101906108f591906130b2565b6118de565b005b34801561090857600080fd5b506109116119b5565b60405161091e919061326d565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190612f5f565b6119db565b005b34801561095c57600080fd5b50610977600480360381019061097291906131fa565b611a9a565b005b34801561098557600080fd5b5061098e611b92565b60405161099d93929190613227565b60405180910390f35b3480156109b257600080fd5b506109bb611baa565b6040516109c89190613525565b60405180910390f35b60085481565b6060600380546109e69061356f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a129061356f565b8015610a5f5780601f10610a3457610100808354040283529160200191610a5f565b820191906000526020600020905b815481529060010190602001808311610a4257829003601f168201915b5050505050905090565b610a71611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610a8f6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906135ed565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6000610b3c610b35611bd0565b8484611bd8565b6001905092915050565b610b4e611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610b6c6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906135ed565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000610c34848484611da3565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c7f611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf69061367f565b60405180910390fd5b610d1c85610d0b611bd0565b8584610d1791906136ce565b611bd8565b60019150509392505050565b60006009905090565b6000610dd3610d3e611bd0565b848460016000610d4c611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dce9190613702565b611bd8565b6001905092915050565b610de5611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610e036110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e50906135ed565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600a5481565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f5b611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610f796110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc6906135ed565b60405180910390fd5b610fd96000612382565b565b600d8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161109c929190613758565b6020604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190613796565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111d9061356f565b80601f01602080910402602001604051908101604052809291908181526020018280546111499061356f565b80156111965780601f1061116b57610100808354040283529160200191611196565b820191906000526020600020905b81548152906001019060200180831161117957829003601f168201915b5050505050905090565b6111a8611bd0565b73ffffffffffffffffffffffffffffffffffffffff166111c66110e4565b73ffffffffffffffffffffffffffffffffffffffff161461121c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611213906135ed565b60405180910390fd5b8060088190555050565b61127181600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661244890919063ffffffff16565b50565b60095481565b60008060016000611289611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613835565b60405180910390fd5b611363611351611bd0565b85858461135e91906136ce565b611bd8565b600191505092915050565b611376611bd0565b73ffffffffffffffffffffffffffffffffffffffff166113946110e4565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e1906135ed565b60405180910390fd5b80600a8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061142e611427611bd0565b8484611da3565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b611460611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661147e6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb906135ed565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611520611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661153e6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906135ed565b60405180910390fd5b60005b82518110156116245781601360008584815181106115b8576115b7613855565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061161c90613884565b915050611597565b505050565b611631611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661164f6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c906135ed565b60405180910390fd5b60001515600760169054906101000a900460ff161515146116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613919565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611720611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661173e6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906135ed565b60405180910390fd5b8060098190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61184d611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661186b6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b8906135ed565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6118e6611bd0565b73ffffffffffffffffffffffffffffffffffffffff166119046110e4565b73ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906135ed565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119e3611bd0565b73ffffffffffffffffffffffffffffffffffffffff16611a016110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e906135ed565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600d600082015181600001556020820151816001015560408201518160020155905050505050565b611aa2611bd0565b73ffffffffffffffffffffffffffffffffffffffff16611ac06110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d906139ab565b60405180910390fd5b611b8f81612382565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613acf565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d969190612e49565b60405180910390a3505050565b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613b3b565b60405180910390fd5b60008111611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613bcd565b60405180910390fd5b600080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f1a5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2b57611f2a85858561253c565b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611fd45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120d357601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561207d5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120d257600760169054906101000a900460ff166120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c39565b60405180910390fd5b5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561217c5760646010600101546010600001546121419190613702565b8461214c9190613c59565b6121569190613ce2565b915060646010600201548461216b9190613c59565b6121759190613ce2565b90506121cb565b6064600d60010154600d600001546121949190613702565b8461219f9190613c59565b6121a99190613ce2565b91506064600d60020154846121be9190613c59565b6121c89190613ce2565b90505b600760149054906101000a900460ff168061222f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122835750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122915760009150600090505b600760159054906101000a900460ff1680156122ba5750600760149054906101000a900460ff16155b80156123145750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123205750600082115b1561232e5761232d6126c9565b5b61234f858583858761234091906136ce565b61234a91906136ce565b612869565b600082111561236457612363853084612869565b5b600081111561237b5761237a8561dead83612869565b5b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8047101561248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290613d5f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516124b190613db0565b60006040518083038185875af1925050503d80600081146124ee576040519150601f19603f3d011682016040523d82523d6000602084013e6124f3565b606091505b5050905080612537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252e90613e37565b60405180910390fd5b505050565b60006009549050806000141561255257506126c4565b600083851873ffffffffffffffffffffffffffffffffffffffff1643601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16171890506000600a5490506000805b8481101561267d578584179150826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126639190612e49565b60405180910390a3806001019050600184901c93506125b6565b5080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505b505050565b600760149054906101000a900460ff16612867576001600760146101000a81548160ff021916908315150217905550600061270330610f0b565b9050600854811061284a57600060026010600101546010600001546127289190613702565b6127329190613c59565b9050600081601060010154846127489190613c59565b6127529190613ce2565b90506000818461276291906136ce565b9050600047905061277282612ae8565b6000814761278091906136ce565b905060006010600101548661279591906136ce565b826127a09190613ce2565b90506000601060010154826127b59190613c59565b905060008111156127cb576127ca8682612d2b565b5b60006010600001546002846127e09190613c59565b6127ea9190613c59565b905060008111156128415761284081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661244890919063ffffffff16565b5b50505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d090613ec9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294090613f5b565b60405180910390fd5b612954838383612e2b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613fed565b60405180910390fd5b81816129e691906136ce565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a769190613702565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ada9190612e49565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0557612b046132ba565b5b604051908082528060200260200182016040528015612b335781602001602082028036833780820191505090505b5090503081600081518110612b4b57612b4a613855565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c169190614022565b81600181518110612c2a57612c29613855565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cf5959493929190614148565b600060405180830381600087803b158015612d0f57600080fd5b505af1158015612d23573d6000803e3d6000fd5b505050505050565b612d5830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612de1969594939291906141a2565b60606040518083038185885af1158015612dff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e249190614218565b5050505050565b505050565b6000819050919050565b612e4381612e30565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e9e578082015181840152602081019050612e83565b83811115612ead576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ecf82612e64565b612ed98185612e6f565b9350612ee9818560208601612e80565b612ef281612eb3565b840191505092915050565b60006020820190508181036000830152612f178184612ec4565b905092915050565b6000604051905090565b600080fd5b600080fd5b612f3c81612e30565b8114612f4757600080fd5b50565b600081359050612f5981612f33565b92915050565b600080600060608486031215612f7857612f77612f29565b5b6000612f8686828701612f4a565b9350506020612f9786828701612f4a565b9250506040612fa886828701612f4a565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fdd82612fb2565b9050919050565b612fed81612fd2565b8114612ff857600080fd5b50565b60008135905061300a81612fe4565b92915050565b6000806040838503121561302757613026612f29565b5b600061303585828601612ffb565b925050602061304685828601612f4a565b9150509250929050565b60008115159050919050565b61306581613050565b82525050565b6000602082019050613080600083018461305c565b92915050565b61308f81613050565b811461309a57600080fd5b50565b6000813590506130ac81613086565b92915050565b600080604083850312156130c9576130c8612f29565b5b60006130d785828601612ffb565b92505060206130e88582860161309d565b9150509250929050565b60008060006060848603121561310b5761310a612f29565b5b600061311986828701612ffb565b935050602061312a86828701612ffb565b925050604061313b86828701612f4a565b9150509250925092565b600060ff82169050919050565b61315b81613145565b82525050565b60006020820190506131766000830184613152565b92915050565b600061318782612fd2565b9050919050565b6131978161317c565b81146131a257600080fd5b50565b6000813590506131b48161318e565b92915050565b600080604083850312156131d1576131d0612f29565b5b60006131df858286016131a5565b92505060206131f085828601612ffb565b9150509250929050565b6000602082840312156132105761320f612f29565b5b600061321e84828501612ffb565b91505092915050565b600060608201905061323c6000830186612e3a565b6132496020830185612e3a565b6132566040830184612e3a565b949350505050565b61326781612fd2565b82525050565b6000602082019050613282600083018461325e565b92915050565b60006020828403121561329e5761329d612f29565b5b60006132ac84828501612f4a565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132f282612eb3565b810181811067ffffffffffffffff82111715613311576133106132ba565b5b80604052505050565b6000613324612f1f565b905061333082826132e9565b919050565b600067ffffffffffffffff8211156133505761334f6132ba565b5b602082029050602081019050919050565b600080fd5b600061337961337484613335565b61331a565b9050808382526020820190506020840283018581111561339c5761339b613361565b5b835b818110156133c557806133b18882612ffb565b84526020840193505060208101905061339e565b5050509392505050565b600082601f8301126133e4576133e36132b5565b5b81356133f4848260208601613366565b91505092915050565b6000806040838503121561341457613413612f29565b5b600083013567ffffffffffffffff81111561343257613431612f2e565b5b61343e858286016133cf565b925050602061344f8582860161309d565b9150509250929050565b600080604083850312156134705761346f612f29565b5b600061347e85828601612ffb565b925050602061348f85828601612ffb565b9150509250929050565b6000602082840312156134af576134ae612f29565b5b60006134bd8482850161309d565b91505092915050565b6000819050919050565b60006134eb6134e66134e184612fb2565b6134c6565b612fb2565b9050919050565b60006134fd826134d0565b9050919050565b600061350f826134f2565b9050919050565b61351f81613504565b82525050565b600060208201905061353a6000830184613516565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358757607f821691505b6020821081141561359b5761359a613540565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135d7602083612e6f565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613669602883612e6f565b91506136748261360d565b604082019050919050565b600060208201905081810360008301526136988161365c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136d982612e30565b91506136e483612e30565b9250828210156136f7576136f661369f565b5b828203905092915050565b600061370d82612e30565b915061371883612e30565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561374d5761374c61369f565b5b828201905092915050565b600060408201905061376d600083018561325e565b61377a6020830184612e3a565b9392505050565b60008151905061379081613086565b92915050565b6000602082840312156137ac576137ab612f29565b5b60006137ba84828501613781565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061381f602583612e6f565b915061382a826137c3565b604082019050919050565b6000602082019050818103600083015261384e81613812565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061388f82612e30565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138c2576138c161369f565b5b600182019050919050565b7f69732074726164696e6700000000000000000000000000000000000000000000600082015250565b6000613903600a83612e6f565b915061390e826138cd565b602082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613995602683612e6f565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a27602483612e6f565b9150613a32826139cb565b604082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab9602283612e6f565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f73656e6465722069732076697000000000000000000000000000000000000000600082015250565b6000613b25600d83612e6f565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bb7602983612e6f565b9150613bc282613b5b565b604082019050919050565b60006020820190508181036000830152613be681613baa565b9050919050565b7f6e6f205472616e73666572000000000000000000000000000000000000000000600082015250565b6000613c23600b83612e6f565b9150613c2e82613bed565b602082019050919050565b60006020820190508181036000830152613c5281613c16565b9050919050565b6000613c6482612e30565b9150613c6f83612e30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ca857613ca761369f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ced82612e30565b9150613cf883612e30565b925082613d0857613d07613cb3565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613d49601d83612e6f565b9150613d5482613d13565b602082019050919050565b60006020820190508181036000830152613d7881613d3c565b9050919050565b600081905092915050565b50565b6000613d9a600083613d7f565b9150613da582613d8a565b600082019050919050565b6000613dbb82613d8d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e21603a83612e6f565b9150613e2c82613dc5565b604082019050919050565b60006020820190508181036000830152613e5081613e14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eb3602583612e6f565b9150613ebe82613e57565b604082019050919050565b60006020820190508181036000830152613ee281613ea6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f45602383612e6f565b9150613f5082613ee9565b604082019050919050565b60006020820190508181036000830152613f7481613f38565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fd7602683612e6f565b9150613fe282613f7b565b604082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b60008151905061401c81612fe4565b92915050565b60006020828403121561403857614037612f29565b5b60006140468482850161400d565b91505092915050565b6000819050919050565b600061407461406f61406a8461404f565b6134c6565b612e30565b9050919050565b61408481614059565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140bf81612fd2565b82525050565b60006140d183836140b6565b60208301905092915050565b6000602082019050919050565b60006140f58261408a565b6140ff8185614095565b935061410a836140a6565b8060005b8381101561413b57815161412288826140c5565b975061412d836140dd565b92505060018101905061410e565b5085935050505092915050565b600060a08201905061415d6000830188612e3a565b61416a602083018761407b565b818103604083015261417c81866140ea565b905061418b606083018561325e565b6141986080830184612e3a565b9695505050505050565b600060c0820190506141b7600083018961325e565b6141c46020830188612e3a565b6141d1604083018761407b565b6141de606083018661407b565b6141eb608083018561325e565b6141f860a0830184612e3a565b979650505050505050565b60008151905061421281612f33565b92915050565b60008060006060848603121561423157614230612f29565b5b600061423f86828701614203565b935050602061425086828701614203565b925050604061426186828701614203565b915050925092509256fea264697066735822122060b7198f6bdb9bef526974a41f38b96ea15de71b5725e9b1021d22430ba09f6964736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102555760003560e01c80639d0014b111610139578063be00ad5c116100b6578063e545fd6d1161007a578063e545fd6d146108d3578063e677b58a146108fc578063e9dae5ed14610927578063f2fde38b14610950578063f66895a314610979578063f887ea40146109a65761025c565b8063be00ad5c146107f0578063c24144ca14610807578063dbe66ca014610830578063dd62ed3e1461086d578063e01af92c146108aa5761025c565b8063a8aa1b31116100fd578063a8aa1b31146106f9578063a9059cbb14610724578063aa168b4714610761578063aacebbe31461079e578063b2887bec146107c75761025c565b80639d0014b1146106165780639e252f001461063f578063a27b850414610668578063a457c2d714610693578063a5500c30146106d05761025c565b806343396f0b116101d2578063728f8eea11610196578063728f8eea14610514578063738170a41461054157806375f0a8741461056c5780638cd4426d146105975780638da5cb5b146105c057806395d89b41146105eb5761025c565b806343396f0b1461043f57806347d6cd6b1461046a5780636ddd17131461049557806370a08231146104c0578063715018a6146104fd5761025c565b806318160ddd1161021957806318160ddd1461034657806323b872dd14610371578063313ce567146103ae57806339509351146103d957806340b28c2f146104165761025c565b80630445b6671461026157806306fdde031461028c57806308733214146102b7578063095ea7b3146102e05780630e6740ce1461031d5761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b506102766109d1565b6040516102839190612e49565b60405180910390f35b34801561029857600080fd5b506102a16109d7565b6040516102ae9190612efd565b60405180910390f35b3480156102c357600080fd5b506102de60048036038101906102d99190612f5f565b610a69565b005b3480156102ec57600080fd5b5061030760048036038101906103029190613010565b610b28565b604051610314919061306b565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f91906130b2565b610b46565b005b34801561035257600080fd5b5061035b610c1d565b6040516103689190612e49565b60405180910390f35b34801561037d57600080fd5b50610398600480360381019061039391906130f2565b610c27565b6040516103a5919061306b565b60405180910390f35b3480156103ba57600080fd5b506103c3610d28565b6040516103d09190613161565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190613010565b610d31565b60405161040d919061306b565b60405180910390f35b34801561042257600080fd5b5061043d600480360381019061043891906131ba565b610ddd565b005b34801561044b57600080fd5b50610454610edf565b604051610461919061306b565b60405180910390f35b34801561047657600080fd5b5061047f610ef2565b60405161048c9190612e49565b60405180910390f35b3480156104a157600080fd5b506104aa610ef8565b6040516104b7919061306b565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906131fa565b610f0b565b6040516104f49190612e49565b60405180910390f35b34801561050957600080fd5b50610512610f53565b005b34801561052057600080fd5b50610529610fdb565b60405161053893929190613227565b60405180910390f35b34801561054d57600080fd5b50610556610ff3565b604051610563919061326d565b60405180910390f35b34801561057857600080fd5b50610581611019565b60405161058e919061326d565b60405180910390f35b3480156105a357600080fd5b506105be60048036038101906105b99190613010565b61103f565b005b3480156105cc57600080fd5b506105d56110e4565b6040516105e2919061326d565b60405180910390f35b3480156105f757600080fd5b5061060061110e565b60405161060d9190612efd565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613288565b6111a0565b005b34801561064b57600080fd5b5061066660048036038101906106619190613288565b611226565b005b34801561067457600080fd5b5061067d611274565b60405161068a9190612e49565b60405180910390f35b34801561069f57600080fd5b506106ba60048036038101906106b59190613010565b61127a565b6040516106c7919061306b565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f29190613288565b61136e565b005b34801561070557600080fd5b5061070e6113f4565b60405161071b919061326d565b60405180910390f35b34801561073057600080fd5b5061074b60048036038101906107469190613010565b61141a565b604051610758919061306b565b60405180910390f35b34801561076d57600080fd5b50610788600480360381019061078391906131fa565b611438565b604051610795919061306b565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c091906131fa565b611458565b005b3480156107d357600080fd5b506107ee60048036038101906107e991906133fd565b611518565b005b3480156107fc57600080fd5b50610805611629565b005b34801561081357600080fd5b5061082e60048036038101906108299190613288565b611718565b005b34801561083c57600080fd5b50610857600480360381019061085291906131fa565b61179e565b604051610864919061306b565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f9190613459565b6117be565b6040516108a19190612e49565b60405180910390f35b3480156108b657600080fd5b506108d160048036038101906108cc9190613499565b611845565b005b3480156108df57600080fd5b506108fa60048036038101906108f591906130b2565b6118de565b005b34801561090857600080fd5b506109116119b5565b60405161091e919061326d565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190612f5f565b6119db565b005b34801561095c57600080fd5b50610977600480360381019061097291906131fa565b611a9a565b005b34801561098557600080fd5b5061098e611b92565b60405161099d93929190613227565b60405180910390f35b3480156109b257600080fd5b506109bb611baa565b6040516109c89190613525565b60405180910390f35b60085481565b6060600380546109e69061356f565b80601f0160208091040260200160405190810160405280929190818152602001828054610a129061356f565b8015610a5f5780601f10610a3457610100808354040283529160200191610a5f565b820191906000526020600020905b815481529060010190602001808311610a4257829003601f168201915b5050505050905090565b610a71611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610a8f6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906135ed565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6000610b3c610b35611bd0565b8484611bd8565b6001905092915050565b610b4e611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610b6c6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb9906135ed565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b6000610c34848484611da3565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c7f611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf69061367f565b60405180910390fd5b610d1c85610d0b611bd0565b8584610d1791906136ce565b611bd8565b60019150509392505050565b60006009905090565b6000610dd3610d3e611bd0565b848460016000610d4c611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dce9190613702565b611bd8565b6001905092915050565b610de5611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610e036110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e50906135ed565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600a5481565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f5b611bd0565b73ffffffffffffffffffffffffffffffffffffffff16610f796110e4565b73ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc6906135ed565b60405180910390fd5b610fd96000612382565b565b600d8060000154908060010154908060020154905083565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161109c929190613758565b6020604051808303816000875af11580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110df9190613796565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461111d9061356f565b80601f01602080910402602001604051908101604052809291908181526020018280546111499061356f565b80156111965780601f1061116b57610100808354040283529160200191611196565b820191906000526020600020905b81548152906001019060200180831161117957829003601f168201915b5050505050905090565b6111a8611bd0565b73ffffffffffffffffffffffffffffffffffffffff166111c66110e4565b73ffffffffffffffffffffffffffffffffffffffff161461121c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611213906135ed565b60405180910390fd5b8060088190555050565b61127181600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661244890919063ffffffff16565b50565b60095481565b60008060016000611289611bd0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133d90613835565b60405180910390fd5b611363611351611bd0565b85858461135e91906136ce565b611bd8565b600191505092915050565b611376611bd0565b73ffffffffffffffffffffffffffffffffffffffff166113946110e4565b73ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e1906135ed565b60405180910390fd5b80600a8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061142e611427611bd0565b8484611da3565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b611460611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661147e6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb906135ed565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611520611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661153e6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b906135ed565b60405180910390fd5b60005b82518110156116245781601360008584815181106115b8576115b7613855565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061161c90613884565b915050611597565b505050565b611631611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661164f6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c906135ed565b60405180910390fd5b60001515600760169054906101000a900460ff161515146116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613919565b60405180910390fd5b6001600760166101000a81548160ff021916908315150217905550565b611720611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661173e6110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b906135ed565b60405180910390fd5b8060098190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61184d611bd0565b73ffffffffffffffffffffffffffffffffffffffff1661186b6110e4565b73ffffffffffffffffffffffffffffffffffffffff16146118c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b8906135ed565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6118e6611bd0565b73ffffffffffffffffffffffffffffffffffffffff166119046110e4565b73ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611951906135ed565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119e3611bd0565b73ffffffffffffffffffffffffffffffffffffffff16611a016110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4e906135ed565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600d600082015181600001556020820151816001015560408201518160020155905050505050565b611aa2611bd0565b73ffffffffffffffffffffffffffffffffffffffff16611ac06110e4565b73ffffffffffffffffffffffffffffffffffffffff1614611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d906135ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d906139ab565b60405180910390fd5b611b8f81612382565b50565b60108060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90613acf565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d969190612e49565b60405180910390a3505050565b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613b3b565b60405180910390fd5b60008111611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613bcd565b60405180910390fd5b600080601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f1a5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2b57611f2a85858561253c565b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611fd45750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120d357601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561207d5750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120d257600760169054906101000a900460ff166120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c39565b60405180910390fd5b5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561217c5760646010600101546010600001546121419190613702565b8461214c9190613c59565b6121569190613ce2565b915060646010600201548461216b9190613c59565b6121759190613ce2565b90506121cb565b6064600d60010154600d600001546121949190613702565b8461219f9190613c59565b6121a99190613ce2565b91506064600d60020154846121be9190613c59565b6121c89190613ce2565b90505b600760149054906101000a900460ff168061222f5750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122835750601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122915760009150600090505b600760159054906101000a900460ff1680156122ba5750600760149054906101000a900460ff16155b80156123145750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123205750600082115b1561232e5761232d6126c9565b5b61234f858583858761234091906136ce565b61234a91906136ce565b612869565b600082111561236457612363853084612869565b5b600081111561237b5761237a8561dead83612869565b5b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8047101561248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290613d5f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516124b190613db0565b60006040518083038185875af1925050503d80600081146124ee576040519150601f19603f3d011682016040523d82523d6000602084013e6124f3565b606091505b5050905080612537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252e90613e37565b60405180910390fd5b505050565b60006009549050806000141561255257506126c4565b600083851873ffffffffffffffffffffffffffffffffffffffff1643601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16171890506000600a5490506000805b8481101561267d578584179150826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126639190612e49565b60405180910390a3806001019050600184901c93506125b6565b5080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505b505050565b600760149054906101000a900460ff16612867576001600760146101000a81548160ff021916908315150217905550600061270330610f0b565b9050600854811061284a57600060026010600101546010600001546127289190613702565b6127329190613c59565b9050600081601060010154846127489190613c59565b6127529190613ce2565b90506000818461276291906136ce565b9050600047905061277282612ae8565b6000814761278091906136ce565b905060006010600101548661279591906136ce565b826127a09190613ce2565b90506000601060010154826127b59190613c59565b905060008111156127cb576127ca8682612d2b565b5b60006010600001546002846127e09190613c59565b6127ea9190613c59565b905060008111156128415761284081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661244890919063ffffffff16565b5b50505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128d090613ec9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294090613f5b565b60405180910390fd5b612954838383612e2b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d190613fed565b60405180910390fd5b81816129e691906136ce565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a769190613702565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ada9190612e49565b60405180910390a350505050565b6000600267ffffffffffffffff811115612b0557612b046132ba565b5b604051908082528060200260200182016040528015612b335781602001602082028036833780820191505090505b5090503081600081518110612b4b57612b4a613855565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c169190614022565b81600181518110612c2a57612c29613855565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c9130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cf5959493929190614148565b600060405180830381600087803b158015612d0f57600080fd5b505af1158015612d23573d6000803e3d6000fd5b505050505050565b612d5830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bd8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612de1969594939291906141a2565b60606040518083038185885af1158015612dff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e249190614218565b5050505050565b505050565b6000819050919050565b612e4381612e30565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e9e578082015181840152602081019050612e83565b83811115612ead576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ecf82612e64565b612ed98185612e6f565b9350612ee9818560208601612e80565b612ef281612eb3565b840191505092915050565b60006020820190508181036000830152612f178184612ec4565b905092915050565b6000604051905090565b600080fd5b600080fd5b612f3c81612e30565b8114612f4757600080fd5b50565b600081359050612f5981612f33565b92915050565b600080600060608486031215612f7857612f77612f29565b5b6000612f8686828701612f4a565b9350506020612f9786828701612f4a565b9250506040612fa886828701612f4a565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fdd82612fb2565b9050919050565b612fed81612fd2565b8114612ff857600080fd5b50565b60008135905061300a81612fe4565b92915050565b6000806040838503121561302757613026612f29565b5b600061303585828601612ffb565b925050602061304685828601612f4a565b9150509250929050565b60008115159050919050565b61306581613050565b82525050565b6000602082019050613080600083018461305c565b92915050565b61308f81613050565b811461309a57600080fd5b50565b6000813590506130ac81613086565b92915050565b600080604083850312156130c9576130c8612f29565b5b60006130d785828601612ffb565b92505060206130e88582860161309d565b9150509250929050565b60008060006060848603121561310b5761310a612f29565b5b600061311986828701612ffb565b935050602061312a86828701612ffb565b925050604061313b86828701612f4a565b9150509250925092565b600060ff82169050919050565b61315b81613145565b82525050565b60006020820190506131766000830184613152565b92915050565b600061318782612fd2565b9050919050565b6131978161317c565b81146131a257600080fd5b50565b6000813590506131b48161318e565b92915050565b600080604083850312156131d1576131d0612f29565b5b60006131df858286016131a5565b92505060206131f085828601612ffb565b9150509250929050565b6000602082840312156132105761320f612f29565b5b600061321e84828501612ffb565b91505092915050565b600060608201905061323c6000830186612e3a565b6132496020830185612e3a565b6132566040830184612e3a565b949350505050565b61326781612fd2565b82525050565b6000602082019050613282600083018461325e565b92915050565b60006020828403121561329e5761329d612f29565b5b60006132ac84828501612f4a565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6132f282612eb3565b810181811067ffffffffffffffff82111715613311576133106132ba565b5b80604052505050565b6000613324612f1f565b905061333082826132e9565b919050565b600067ffffffffffffffff8211156133505761334f6132ba565b5b602082029050602081019050919050565b600080fd5b600061337961337484613335565b61331a565b9050808382526020820190506020840283018581111561339c5761339b613361565b5b835b818110156133c557806133b18882612ffb565b84526020840193505060208101905061339e565b5050509392505050565b600082601f8301126133e4576133e36132b5565b5b81356133f4848260208601613366565b91505092915050565b6000806040838503121561341457613413612f29565b5b600083013567ffffffffffffffff81111561343257613431612f2e565b5b61343e858286016133cf565b925050602061344f8582860161309d565b9150509250929050565b600080604083850312156134705761346f612f29565b5b600061347e85828601612ffb565b925050602061348f85828601612ffb565b9150509250929050565b6000602082840312156134af576134ae612f29565b5b60006134bd8482850161309d565b91505092915050565b6000819050919050565b60006134eb6134e66134e184612fb2565b6134c6565b612fb2565b9050919050565b60006134fd826134d0565b9050919050565b600061350f826134f2565b9050919050565b61351f81613504565b82525050565b600060208201905061353a6000830184613516565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061358757607f821691505b6020821081141561359b5761359a613540565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135d7602083612e6f565b91506135e2826135a1565b602082019050919050565b60006020820190508181036000830152613606816135ca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613669602883612e6f565b91506136748261360d565b604082019050919050565b600060208201905081810360008301526136988161365c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136d982612e30565b91506136e483612e30565b9250828210156136f7576136f661369f565b5b828203905092915050565b600061370d82612e30565b915061371883612e30565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561374d5761374c61369f565b5b828201905092915050565b600060408201905061376d600083018561325e565b61377a6020830184612e3a565b9392505050565b60008151905061379081613086565b92915050565b6000602082840312156137ac576137ab612f29565b5b60006137ba84828501613781565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061381f602583612e6f565b915061382a826137c3565b604082019050919050565b6000602082019050818103600083015261384e81613812565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061388f82612e30565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138c2576138c161369f565b5b600182019050919050565b7f69732074726164696e6700000000000000000000000000000000000000000000600082015250565b6000613903600a83612e6f565b915061390e826138cd565b602082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613995602683612e6f565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a27602483612e6f565b9150613a32826139cb565b604082019050919050565b60006020820190508181036000830152613a5681613a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ab9602283612e6f565b9150613ac482613a5d565b604082019050919050565b60006020820190508181036000830152613ae881613aac565b9050919050565b7f73656e6465722069732076697000000000000000000000000000000000000000600082015250565b6000613b25600d83612e6f565b9150613b3082613aef565b602082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bb7602983612e6f565b9150613bc282613b5b565b604082019050919050565b60006020820190508181036000830152613be681613baa565b9050919050565b7f6e6f205472616e73666572000000000000000000000000000000000000000000600082015250565b6000613c23600b83612e6f565b9150613c2e82613bed565b602082019050919050565b60006020820190508181036000830152613c5281613c16565b9050919050565b6000613c6482612e30565b9150613c6f83612e30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ca857613ca761369f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ced82612e30565b9150613cf883612e30565b925082613d0857613d07613cb3565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613d49601d83612e6f565b9150613d5482613d13565b602082019050919050565b60006020820190508181036000830152613d7881613d3c565b9050919050565b600081905092915050565b50565b6000613d9a600083613d7f565b9150613da582613d8a565b600082019050919050565b6000613dbb82613d8d565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000613e21603a83612e6f565b9150613e2c82613dc5565b604082019050919050565b60006020820190508181036000830152613e5081613e14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eb3602583612e6f565b9150613ebe82613e57565b604082019050919050565b60006020820190508181036000830152613ee281613ea6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f45602383612e6f565b9150613f5082613ee9565b604082019050919050565b60006020820190508181036000830152613f7481613f38565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fd7602683612e6f565b9150613fe282613f7b565b604082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b60008151905061401c81612fe4565b92915050565b60006020828403121561403857614037612f29565b5b60006140468482850161400d565b91505092915050565b6000819050919050565b600061407461406f61406a8461404f565b6134c6565b612e30565b9050919050565b61408481614059565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140bf81612fd2565b82525050565b60006140d183836140b6565b60208301905092915050565b6000602082019050919050565b60006140f58261408a565b6140ff8185614095565b935061410a836140a6565b8060005b8381101561413b57815161412288826140c5565b975061412d836140dd565b92505060018101905061410e565b5085935050505092915050565b600060a08201905061415d6000830188612e3a565b61416a602083018761407b565b818103604083015261417c81866140ea565b905061418b606083018561325e565b6141986080830184612e3a565b9695505050505050565b600060c0820190506141b7600083018961325e565b6141c46020830188612e3a565b6141d1604083018761407b565b6141de606083018661407b565b6141eb608083018561325e565b6141f860a0830184612e3a565b979650505050505050565b60008151905061421281612f33565b92915050565b60008060006060848603121561423157614230612f29565b5b600061423f86828701614203565b935050602061425086828701614203565b925050604061426186828701614203565b915050925092509256fea264697066735822122060b7198f6bdb9bef526974a41f38b96ea15de71b5725e9b1021d22430ba09f6964736f6c634300080c0033
Deployed Bytecode Sourcemap
13174:8328:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13426:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2380:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19195:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4547:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20049:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3500:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5198:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14777:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6029:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19491:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13386:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13506:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13349:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3671:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11951:94;;;;;;;;;;;;;:::i;:::-;;13842:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13634:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13552;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21160:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11728:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2599:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18915:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21318:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13469:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6747:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21045:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13289:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4011:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13989:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19369:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19837:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18777:130;;;;;;;;;;;;;:::i;:::-;;20946:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13933:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4249:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18676:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19695:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20173:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19033:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12053:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13885:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13261:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13426:36;;;;:::o;2380:100::-;2434:13;2467:5;2460:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:100;:::o;19195:162::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19313:36:::1;;;;;;;;19319:10;19313:36;;;;19331:10;19313:36;;;;19343:5;19313:36;;::::0;19301:9:::1;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;19195:162:::0;;;:::o;4547:169::-;4630:4;4647:39;4656:12;:10;:12::i;:::-;4670:7;4679:6;4647:8;:39::i;:::-;4704:4;4697:11;;4547:169;;;;:::o;20049:116::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20152:5:::1;20132:7;:17;20140:8;20132:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20049:116:::0;;:::o;3500:108::-;3561:7;3588:12;;3581:19;;3500:108;:::o;5198:422::-;5304:4;5321:36;5331:6;5339:9;5350:6;5321:9;:36::i;:::-;5370:24;5397:11;:19;5409:6;5397:19;;;;;;;;;;;;;;;:33;5417:12;:10;:12::i;:::-;5397:33;;;;;;;;;;;;;;;;5370:60;;5469:6;5449:16;:26;;5441:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5531:57;5540:6;5548:12;:10;:12::i;:::-;5581:6;5562:16;:25;;;;:::i;:::-;5531:8;:57::i;:::-;5608:4;5601:11;;;5198:422;;;;;:::o;14777:82::-;14826:5;14850:1;14843:8;;14777:82;:::o;6029:215::-;6117:4;6134:80;6143:12;:10;:12::i;:::-;6157:7;6203:10;6166:11;:25;6178:12;:10;:12::i;:::-;6166:25;;;;;;;;;;;;;;;:34;6192:7;6166:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6134:8;:80::i;:::-;6232:4;6225:11;;6029:215;;;;:::o;19491:192::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19645:7:::1;19636:6;;:16;;;;;;;;;;;;;;;;;;19670:5;19663:4;;:12;;;;;;;;;;;;;;;;;;19491:192:::0;;:::o;13386:29::-;;;;;;;;;;;;;:::o;13506:33::-;;;;:::o;13349:30::-;;;;;;;;;;;;;:::o;3671:127::-;3745:7;3772:9;:18;3782:7;3772:18;;;;;;;;;;;;;;;;3765:25;;3671:127;;;:::o;11951:94::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12016:21:::1;12034:1;12016:9;:21::i;:::-;11951:94::o:0;13842:33::-;;;;;;;;;;;;;;;;;;;:::o;13634:75::-;;;;;;;;;;;;;:::o;13552:::-;;;;;;;;;;;;;:::o;21160:150::-;21246:12;21239:29;;;21277:15;;;;;;;;;;;21295:6;21239:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21160:150;;:::o;11728:87::-;11774:7;11801:6;;;;;;;;;;;11794:13;;11728:87;:::o;2599:104::-;2655:13;2688:7;2681:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2599:104;:::o;18915:110::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19007:10:::1;18991:13;:26;;;;18915:110:::0;:::o;21318:120::-;21376:54;21420:9;21392:15;;;;;;;;;;;21376:43;;;;:54;;;;:::i;:::-;21318:120;:::o;13469:30::-;;;;:::o;6747:377::-;6840:4;6857:24;6884:11;:25;6896:12;:10;:12::i;:::-;6884:25;;;;;;;;;;;;;;;:34;6910:7;6884:34;;;;;;;;;;;;;;;;6857:61;;6957:15;6937:16;:35;;6929:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7025:67;7034:12;:10;:12::i;:::-;7048:7;7076:15;7057:16;:34;;;;:::i;:::-;7025:8;:67::i;:::-;7112:4;7105:11;;;6747:377;;;;:::o;21045:103::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21134:6:::1;21117:14;:23;;;;21045:103:::0;:::o;13289:19::-;;;;;;;;;;;;;:::o;4011:175::-;4097:4;4114:42;4124:12;:10;:12::i;:::-;4138:9;4149:6;4114:9;:42::i;:::-;4174:4;4167:11;;4011:175;;;;:::o;13989:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;19369:114::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19466:9:::1;19448:15;;:27;;;;;;;;;;;;;;;;;;19369:114:::0;:::o;19837:204::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19939:6:::1;19934:100;19955:4;:11;19951:1;:15;19934:100;;;20016:6;19988:16;:25;20005:4;20010:1;20005:7;;;;;;;;:::i;:::-;;;;;;;;19988:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19968:3;;;;;:::i;:::-;;;;19934:100;;;;19837:204:::0;;:::o;18777:130::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18852:5:::1;18839:18;;:9;;;;;;;;;;;:18;;;18831:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;18895:4;18883:9;;:16;;;;;;;;;;;;;;;;;;18777:130::o:0;20946:91::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21026:3:::1;21012:11;:17;;;;20946:91:::0;:::o;13933:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4249:151::-;4338:7;4365:11;:18;4377:5;4365:18;;;;;;;;;;;;;;;:27;4384:7;4365:27;;;;;;;;;;;;;;;;4358:34;;4249:151;;;;:::o;18676:93::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18756:5:::1;18742:11;;:19;;;;;;;;;;;;;;;;;;18676:93:::0;:::o;19695:134::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19816:5:::1;19787:16;:26;19804:8;19787:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19695:134:::0;;:::o;20173:33::-;;;;;;;;;;;;;:::o;19033:154::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19143:36:::1;;;;;;;;19149:10;19143:36;;;;19161:10;19143:36;;;;19173:5;19143:36;;::::0;19135:5:::1;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;19033:154:::0;;;:::o;12053:192::-;11874:12;:10;:12::i;:::-;11863:23;;:7;:5;:7::i;:::-;:23;;;11855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12162:1:::1;12142:22;;:8;:22;;;;12134:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12218:19;12228:8;12218:9;:19::i;:::-;12053:192:::0;:::o;13885:37::-;;;;;;;;;;;;;;;;;;;:::o;13261:21::-;;;;;;;;;;;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;10103:346::-;10222:1;10205:19;;:5;:19;;;;10197:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10303:1;10284:21;;:7;:21;;;;10276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10387:6;10357:11;:18;10369:5;10357:18;;;;;;;;;;;;;;;:27;10376:7;10357:27;;;;;;;;;;;;;;;:36;;;;10425:7;10409:32;;10418:5;10409:32;;;10434:6;10409:32;;;;;;:::i;:::-;;;;;;;;10103:346;;;:::o;14867:1630::-;14975:7;:15;14983:6;14975:15;;;;;;;;;;;;;;;;;;;;;;;;;14974:16;14966:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15036:1;15027:6;:10;15019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15102:11;15124:15;15176:16;:24;15193:6;15176:24;;;;;;;;;;;;;;;;;;;;;;;;;15175:25;:57;;;;;15205:16;:27;15222:9;15205:27;;;;;;;;;;;;;;;;;;;;;;;;;15204:28;15175:57;15172:123;;;15248:35;15257:6;15265:9;15276:6;15248:8;:35::i;:::-;15172:123;15354:4;;;;;;;;;;;15344:14;;:6;:14;;;:35;;;;15375:4;;;;;;;;;;;15362:17;;:9;:17;;;15344:35;15341:195;;;15400:16;:24;15417:6;15400:24;;;;;;;;;;;;;;;;;;;;;;;;;15399:25;:57;;;;;15429:16;:27;15446:9;15429:27;;;;;;;;;;;;;;;;;;;;;;;;;15428:28;15399:57;15396:129;;;15484:9;;;;;;;;;;;15476:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;15396:129;15341:195;15562:4;;;;;;;;;;;15549:17;;:9;:17;;;15546:315;;;15644:3;15621:9;:19;;;15599:9;:19;;;:41;;;;:::i;:::-;15589:6;:52;;;;:::i;:::-;:58;;;;:::i;:::-;15583:64;;15698:3;15681:9;:14;;;15672:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;15662:39;;15546:315;;;15796:3;15777:5;:15;;;15759:5;:15;;;:33;;;;:::i;:::-;15749:6;:44;;;;:::i;:::-;:50;;;;:::i;:::-;15743:56;;15846:3;15833:5;:10;;;15824:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15814:35;;15546:315;15956:8;;;;;;;;;;;:36;;;;15968:16;:24;15985:6;15968:24;;;;;;;;;;;;;;;;;;;;;;;;;15956:36;:67;;;;15996:16;:27;16013:9;15996:27;;;;;;;;;;;;;;;;;;;;;;;;;15956:67;15952:133;;;16046:1;16040:7;;16072:1;16062:11;;15952:133;16206:11;;;;;;;;;;;:24;;;;;16222:8;;;;;;;;;;;16221:9;16206:24;:42;;;;;16244:4;;;;;;;;;;;16234:14;;:6;:14;;;;16206:42;:53;;;;;16258:1;16252:3;:7;16206:53;16202:72;;;16261:13;:11;:13::i;:::-;16202:72;16287:58;16303:6;16311:9;16337:7;16331:3;16322:6;:12;;;;:::i;:::-;:22;;;;:::i;:::-;16287:15;:58::i;:::-;16365:1;16359:3;:7;16356:55;;;16368:43;16384:6;16400:4;16407:3;16368:15;:43::i;:::-;16356:55;16435:1;16425:7;:11;16422:65;;;16438:49;16454:6;16470;16479:7;16438:15;:49::i;:::-;16422:65;14955:1542;;14867:1630;;;:::o;12253:173::-;12309:16;12328:6;;;;;;;;;;;12309:25;;12354:8;12345:6;;:17;;;;;;;;;;;;;;;;;;12409:8;12378:40;;12399:8;12378:40;;;;;;;;;;;;12298:128;12253:173;:::o;11173:317::-;11288:6;11263:21;:31;;11255:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11342:12;11360:9;:14;;11382:6;11360:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11341:52;;;11412:7;11404:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11244:246;11173:317;;:::o;20215:723::-;20295:11;20309;;20295:25;;20340:3;20335:1;:8;20331:47;;;20360:7;;;20331:47;20388:12;20475:2;20459:4;20451:27;20403:76;;20434:12;20412:18;;;;;;;;;;;20404:42;;;20403:76;20388:91;;20490:21;20514:14;;20490:38;;20539:22;20577:9;20572:313;20592:3;20588:1;:7;20572:313;;;20653:7;20646:4;:14;20613:49;;20705:13;20677:9;:25;20687:14;20677:25;;;;;;;;;;;;;;;:41;;;;20763:14;20738:55;;20747:14;20738:55;;;20779:13;20738:55;;;;;;:::i;:::-;;;;;;;;20828:3;;;;;20861:1;20853:4;:9;;20846:16;;20572:313;;;;20916:14;20895:18;;:35;;;;;;;;;;;;;;;;;;20284:654;;;;20215:723;;;;:::o;16505:1233::-;14072:8;;;;;;;;;;;14067:104;;14108:4;14097:8;;:15;;;;;;;;;;;;;;;;;;16554:23:::1;16580:24;16598:4;16580:9;:24::i;:::-;16554:50;;16638:13;;16619:15;:32;16615:1116;;16725:19;16793:1;16770:9;:19;;;16748:9;:19;;;:41;;;;:::i;:::-;16747:47;;;;:::i;:::-;16725:69;;16809:32;16884:11;16862:9;:19;;;16844:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16809:86;;16910:14;16945:24;16927:15;:42;;;;:::i;:::-;16910:59;;16990:22;17015:21;16990:46;;17057:24;17074:6;17057:16;:24::i;:::-;17102:20;17149:14;17125:21;:38;;;;:::i;:::-;17102:61;;17178:19;17229:9;:19;;;17215:11;:33;;;;:::i;:::-;17199:12;:50;;;;:::i;:::-;17178:71;;17264:29;17310:9;:19;;;17296:11;:33;;;;:::i;:::-;17264:65;;17377:1;17353:21;:25;17350:170;;;17443:61;17456:24;17482:21;17443:12;:61::i;:::-;17350:170;17540:20;17581:9;:19;;;17577:1;17563:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17540:60;;17633:1;17618:12;:16;17615:103;;;17654:48;17689:12;17662:15;;;;;;;;;;;17654:34;;;;:48;;;;:::i;:::-;17615:103;16653:1078;;;;;;;;16615:1116;16543:1195;14154:5:::0;14143:8;;:16;;;;;;;;;;;;;;;;;;14067:104;16505:1233::o;7614:604::-;7738:1;7720:20;;:6;:20;;;;7712:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7822:1;7801:23;;:9;:23;;;;7793:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7877:47;7898:6;7906:9;7917:6;7877:20;:47::i;:::-;7937:21;7961:9;:17;7971:6;7961:17;;;;;;;;;;;;;;;;7937:41;;8014:6;7997:13;:23;;7989:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8110:6;8094:13;:22;;;;:::i;:::-;8074:9;:17;8084:6;8074:17;;;;;;;;;;;;;;;:42;;;;8151:6;8127:9;:20;8137:9;8127:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8192:9;8175:35;;8184:6;8175:35;;;8203:6;8175:35;;;;;;:::i;:::-;;;;;;;;7701:517;7614:604;;;:::o;17748:400::-;17814:21;17852:1;17838:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17814:40;;17883:4;17865;17870:1;17865:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17909:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17899:4;17904:1;17899:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17935:53;17952:4;17967:6;;;;;;;;;;;17976:11;17935:8;:53::i;:::-;18027:6;;;;;;;;;;;:57;;;18085:11;18098:1;18101:4;18115;18122:15;18027:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17803:345;17748:400;:::o;18156:512::-;18304:53;18321:4;18336:6;;;;;;;;;;;18345:11;18304:8;:53::i;:::-;18400:6;;;;;;;;;;;:22;;;18430:9;18463:4;18483:11;18509:1;18552;18603:15;;;;;;;;;;;18634;18400:260;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18156:512;;:::o;11052: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:116::-;4541:21;4556:5;4541:21;:::i;:::-;4534:5;4531:32;4521:60;;4577:1;4574;4567:12;4521:60;4471:116;:::o;4593:133::-;4636:5;4674:6;4661:20;4652:29;;4690:30;4714:5;4690:30;:::i;:::-;4593:133;;;;:::o;4732:468::-;4797:6;4805;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;5107:2;5133:50;5175:7;5166:6;5155:9;5151:22;5133:50;:::i;:::-;5123:60;;5078:115;4732:468;;;;;:::o;5206:619::-;5283:6;5291;5299;5348:2;5336:9;5327:7;5323:23;5319:32;5316:119;;;5354:79;;:::i;:::-;5316:119;5474:1;5499:53;5544:7;5535:6;5524:9;5520:22;5499:53;:::i;:::-;5489:63;;5445:117;5601:2;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5572:118;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5206:619;;;;;:::o;5831:86::-;5866:7;5906:4;5899:5;5895:16;5884:27;;5831:86;;;:::o;5923:112::-;6006:22;6022:5;6006:22;:::i;:::-;6001:3;5994:35;5923:112;;:::o;6041:214::-;6130:4;6168:2;6157:9;6153:18;6145:26;;6181:67;6245:1;6234:9;6230:17;6221:6;6181:67;:::i;:::-;6041:214;;;;:::o;6261:111::-;6313:7;6342:24;6360:5;6342:24;:::i;:::-;6331:35;;6261:111;;;:::o;6378:152::-;6466:39;6499:5;6466:39;:::i;:::-;6459:5;6456:50;6446:78;;6520:1;6517;6510:12;6446:78;6378:152;:::o;6536:169::-;6597:5;6635:6;6622:20;6613:29;;6651:48;6693:5;6651:48;:::i;:::-;6536:169;;;;:::o;6711:504::-;6794:6;6802;6851:2;6839:9;6830:7;6826:23;6822:32;6819:119;;;6857:79;;:::i;:::-;6819:119;6977:1;7002:68;7062:7;7053:6;7042:9;7038:22;7002:68;:::i;:::-;6992:78;;6948:132;7119:2;7145:53;7190:7;7181:6;7170:9;7166:22;7145:53;:::i;:::-;7135:63;;7090:118;6711:504;;;;;:::o;7221:329::-;7280:6;7329:2;7317:9;7308:7;7304:23;7300:32;7297:119;;;7335:79;;:::i;:::-;7297:119;7455:1;7480:53;7525:7;7516:6;7505:9;7501:22;7480:53;:::i;:::-;7470:63;;7426:117;7221:329;;;;:::o;7556:442::-;7705:4;7743:2;7732:9;7728:18;7720:26;;7756:71;7824:1;7813:9;7809:17;7800:6;7756:71;:::i;:::-;7837:72;7905:2;7894:9;7890:18;7881:6;7837:72;:::i;:::-;7919;7987:2;7976:9;7972:18;7963:6;7919:72;:::i;:::-;7556:442;;;;;;:::o;8004:118::-;8091:24;8109:5;8091:24;:::i;:::-;8086:3;8079:37;8004:118;;:::o;8128:222::-;8221:4;8259:2;8248:9;8244:18;8236:26;;8272:71;8340:1;8329:9;8325:17;8316:6;8272:71;:::i;:::-;8128:222;;;;:::o;8356:329::-;8415:6;8464:2;8452:9;8443:7;8439:23;8435:32;8432:119;;;8470:79;;:::i;:::-;8432:119;8590:1;8615:53;8660:7;8651:6;8640:9;8636:22;8615:53;:::i;:::-;8605:63;;8561:117;8356:329;;;;:::o;8691:117::-;8800:1;8797;8790:12;8814:180;8862:77;8859:1;8852:88;8959:4;8956:1;8949:15;8983:4;8980:1;8973:15;9000:281;9083:27;9105:4;9083:27;:::i;:::-;9075:6;9071:40;9213:6;9201:10;9198:22;9177:18;9165:10;9162:34;9159:62;9156:88;;;9224:18;;:::i;:::-;9156:88;9264:10;9260:2;9253:22;9043:238;9000:281;;:::o;9287:129::-;9321:6;9348:20;;:::i;:::-;9338:30;;9377:33;9405:4;9397:6;9377:33;:::i;:::-;9287:129;;;:::o;9422:311::-;9499:4;9589:18;9581:6;9578:30;9575:56;;;9611:18;;:::i;:::-;9575:56;9661:4;9653:6;9649:17;9641:25;;9721:4;9715;9711:15;9703:23;;9422:311;;;:::o;9739:117::-;9848:1;9845;9838:12;9879:710;9975:5;10000:81;10016:64;10073:6;10016:64;:::i;:::-;10000:81;:::i;:::-;9991:90;;10101:5;10130:6;10123:5;10116:21;10164:4;10157:5;10153:16;10146:23;;10217:4;10209:6;10205:17;10197:6;10193:30;10246:3;10238:6;10235:15;10232:122;;;10265:79;;:::i;:::-;10232:122;10380:6;10363:220;10397:6;10392:3;10389:15;10363:220;;;10472:3;10501:37;10534:3;10522:10;10501:37;:::i;:::-;10496:3;10489:50;10568:4;10563:3;10559:14;10552:21;;10439:144;10423:4;10418:3;10414:14;10407:21;;10363:220;;;10367:21;9981:608;;9879:710;;;;;:::o;10612:370::-;10683:5;10732:3;10725:4;10717:6;10713:17;10709:27;10699:122;;10740:79;;:::i;:::-;10699:122;10857:6;10844:20;10882:94;10972:3;10964:6;10957:4;10949:6;10945:17;10882:94;:::i;:::-;10873:103;;10689:293;10612:370;;;;:::o;10988:678::-;11078:6;11086;11135:2;11123:9;11114:7;11110:23;11106:32;11103:119;;;11141:79;;:::i;:::-;11103:119;11289:1;11278:9;11274:17;11261:31;11319:18;11311:6;11308:30;11305:117;;;11341:79;;:::i;:::-;11305:117;11446:78;11516:7;11507:6;11496:9;11492:22;11446:78;:::i;:::-;11436:88;;11232:302;11573:2;11599:50;11641:7;11632:6;11621:9;11617:22;11599:50;:::i;:::-;11589:60;;11544:115;10988:678;;;;;:::o;11672:474::-;11740:6;11748;11797:2;11785:9;11776:7;11772:23;11768:32;11765:119;;;11803:79;;:::i;:::-;11765:119;11923:1;11948:53;11993:7;11984:6;11973:9;11969:22;11948:53;:::i;:::-;11938:63;;11894:117;12050:2;12076:53;12121:7;12112:6;12101:9;12097:22;12076:53;:::i;:::-;12066:63;;12021:118;11672:474;;;;;:::o;12152:323::-;12208:6;12257:2;12245:9;12236:7;12232:23;12228:32;12225:119;;;12263:79;;:::i;:::-;12225:119;12383:1;12408:50;12450:7;12441:6;12430:9;12426:22;12408:50;:::i;:::-;12398:60;;12354:114;12152:323;;;;:::o;12481:60::-;12509:3;12530:5;12523:12;;12481:60;;;:::o;12547:142::-;12597:9;12630:53;12648:34;12657:24;12675:5;12657:24;:::i;:::-;12648:34;:::i;:::-;12630:53;:::i;:::-;12617:66;;12547:142;;;:::o;12695:126::-;12745:9;12778:37;12809:5;12778:37;:::i;:::-;12765:50;;12695:126;;;:::o;12827:141::-;12892:9;12925:37;12956:5;12925:37;:::i;:::-;12912:50;;12827:141;;;:::o;12974:161::-;13076:52;13122:5;13076:52;:::i;:::-;13071:3;13064:65;12974:161;;:::o;13141:252::-;13249:4;13287:2;13276:9;13272:18;13264:26;;13300:86;13383:1;13372:9;13368:17;13359:6;13300:86;:::i;:::-;13141:252;;;;:::o;13399:180::-;13447:77;13444:1;13437:88;13544:4;13541:1;13534:15;13568:4;13565:1;13558:15;13585:320;13629:6;13666:1;13660:4;13656:12;13646:22;;13713:1;13707:4;13703:12;13734:18;13724:81;;13790:4;13782:6;13778:17;13768:27;;13724:81;13852:2;13844:6;13841:14;13821:18;13818:38;13815:84;;;13871:18;;:::i;:::-;13815:84;13636:269;13585:320;;;:::o;13911:182::-;14051:34;14047:1;14039:6;14035:14;14028:58;13911:182;:::o;14099:366::-;14241:3;14262:67;14326:2;14321:3;14262:67;:::i;:::-;14255:74;;14338:93;14427:3;14338:93;:::i;:::-;14456:2;14451:3;14447:12;14440:19;;14099:366;;;:::o;14471:419::-;14637:4;14675:2;14664:9;14660:18;14652:26;;14724:9;14718:4;14714:20;14710:1;14699:9;14695:17;14688:47;14752:131;14878:4;14752:131;:::i;:::-;14744:139;;14471:419;;;:::o;14896:227::-;15036:34;15032:1;15024:6;15020:14;15013:58;15105:10;15100:2;15092:6;15088:15;15081:35;14896:227;:::o;15129:366::-;15271:3;15292:67;15356:2;15351:3;15292:67;:::i;:::-;15285:74;;15368:93;15457:3;15368:93;:::i;:::-;15486:2;15481:3;15477:12;15470:19;;15129:366;;;:::o;15501:419::-;15667:4;15705:2;15694:9;15690:18;15682:26;;15754:9;15748:4;15744:20;15740:1;15729:9;15725:17;15718:47;15782:131;15908:4;15782:131;:::i;:::-;15774:139;;15501:419;;;:::o;15926:180::-;15974:77;15971:1;15964:88;16071:4;16068:1;16061:15;16095:4;16092:1;16085:15;16112:191;16152:4;16172:20;16190:1;16172:20;:::i;:::-;16167:25;;16206:20;16224:1;16206:20;:::i;:::-;16201:25;;16245:1;16242;16239:8;16236:34;;;16250:18;;:::i;:::-;16236:34;16295:1;16292;16288:9;16280:17;;16112:191;;;;:::o;16309:305::-;16349:3;16368:20;16386:1;16368:20;:::i;:::-;16363:25;;16402:20;16420:1;16402:20;:::i;:::-;16397:25;;16556:1;16488:66;16484:74;16481:1;16478:81;16475:107;;;16562:18;;:::i;:::-;16475:107;16606:1;16603;16599:9;16592:16;;16309:305;;;;:::o;16620:332::-;16741:4;16779:2;16768:9;16764:18;16756:26;;16792:71;16860:1;16849:9;16845:17;16836:6;16792:71;:::i;:::-;16873:72;16941:2;16930:9;16926:18;16917:6;16873:72;:::i;:::-;16620:332;;;;;:::o;16958:137::-;17012:5;17043:6;17037:13;17028:22;;17059:30;17083:5;17059:30;:::i;:::-;16958:137;;;;:::o;17101:345::-;17168:6;17217:2;17205:9;17196:7;17192:23;17188:32;17185:119;;;17223:79;;:::i;:::-;17185:119;17343:1;17368:61;17421:7;17412:6;17401:9;17397:22;17368:61;:::i;:::-;17358:71;;17314:125;17101:345;;;;:::o;17452:224::-;17592:34;17588:1;17580:6;17576:14;17569:58;17661:7;17656:2;17648:6;17644:15;17637:32;17452:224;:::o;17682:366::-;17824:3;17845:67;17909:2;17904:3;17845:67;:::i;:::-;17838:74;;17921:93;18010:3;17921:93;:::i;:::-;18039:2;18034:3;18030:12;18023:19;;17682:366;;;:::o;18054:419::-;18220:4;18258:2;18247:9;18243:18;18235:26;;18307:9;18301:4;18297:20;18293:1;18282:9;18278:17;18271:47;18335:131;18461:4;18335:131;:::i;:::-;18327:139;;18054:419;;;:::o;18479:180::-;18527:77;18524:1;18517:88;18624:4;18621:1;18614:15;18648:4;18645:1;18638:15;18665:233;18704:3;18727:24;18745:5;18727:24;:::i;:::-;18718:33;;18773:66;18766:5;18763:77;18760:103;;;18843:18;;:::i;:::-;18760:103;18890:1;18883:5;18879:13;18872:20;;18665:233;;;:::o;18904:160::-;19044:12;19040:1;19032:6;19028:14;19021:36;18904:160;:::o;19070:366::-;19212:3;19233:67;19297:2;19292:3;19233:67;:::i;:::-;19226:74;;19309:93;19398:3;19309:93;:::i;:::-;19427:2;19422:3;19418:12;19411:19;;19070:366;;;:::o;19442:419::-;19608:4;19646:2;19635:9;19631:18;19623:26;;19695:9;19689:4;19685:20;19681:1;19670:9;19666:17;19659:47;19723:131;19849:4;19723:131;:::i;:::-;19715:139;;19442:419;;;:::o;19867:225::-;20007:34;20003:1;19995:6;19991:14;19984:58;20076:8;20071:2;20063:6;20059:15;20052:33;19867:225;:::o;20098:366::-;20240:3;20261:67;20325:2;20320:3;20261:67;:::i;:::-;20254:74;;20337:93;20426:3;20337:93;:::i;:::-;20455:2;20450:3;20446:12;20439:19;;20098:366;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20470:419;;;:::o;20895:223::-;21035:34;21031:1;21023:6;21019:14;21012:58;21104:6;21099:2;21091:6;21087:15;21080:31;20895:223;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:221::-;22061:34;22057:1;22049:6;22045:14;22038:58;22130:4;22125:2;22117:6;22113:15;22106:29;21921:221;:::o;22148:366::-;22290:3;22311:67;22375:2;22370:3;22311:67;:::i;:::-;22304:74;;22387:93;22476:3;22387:93;:::i;:::-;22505:2;22500:3;22496:12;22489:19;;22148:366;;;:::o;22520:419::-;22686:4;22724:2;22713:9;22709:18;22701:26;;22773:9;22767:4;22763:20;22759:1;22748:9;22744:17;22737:47;22801:131;22927:4;22801:131;:::i;:::-;22793:139;;22520:419;;;:::o;22945:163::-;23085:15;23081:1;23073:6;23069:14;23062:39;22945:163;:::o;23114:366::-;23256:3;23277:67;23341:2;23336:3;23277:67;:::i;:::-;23270:74;;23353:93;23442:3;23353:93;:::i;:::-;23471:2;23466:3;23462:12;23455:19;;23114:366;;;:::o;23486:419::-;23652:4;23690:2;23679:9;23675:18;23667:26;;23739:9;23733:4;23729:20;23725:1;23714:9;23710:17;23703:47;23767:131;23893:4;23767:131;:::i;:::-;23759:139;;23486:419;;;:::o;23911:228::-;24051:34;24047:1;24039:6;24035:14;24028:58;24120:11;24115:2;24107:6;24103:15;24096:36;23911:228;:::o;24145:366::-;24287:3;24308:67;24372:2;24367:3;24308:67;:::i;:::-;24301:74;;24384:93;24473:3;24384:93;:::i;:::-;24502:2;24497:3;24493:12;24486:19;;24145:366;;;:::o;24517:419::-;24683:4;24721:2;24710:9;24706:18;24698:26;;24770:9;24764:4;24760:20;24756:1;24745:9;24741:17;24734:47;24798:131;24924:4;24798:131;:::i;:::-;24790:139;;24517:419;;;:::o;24942:161::-;25082:13;25078:1;25070:6;25066:14;25059:37;24942:161;:::o;25109:366::-;25251:3;25272:67;25336:2;25331:3;25272:67;:::i;:::-;25265:74;;25348:93;25437:3;25348:93;:::i;:::-;25466:2;25461:3;25457:12;25450:19;;25109:366;;;:::o;25481:419::-;25647:4;25685:2;25674:9;25670:18;25662:26;;25734:9;25728:4;25724:20;25720:1;25709:9;25705:17;25698:47;25762:131;25888:4;25762:131;:::i;:::-;25754:139;;25481:419;;;:::o;25906:348::-;25946:7;25969:20;25987:1;25969:20;:::i;:::-;25964:25;;26003:20;26021:1;26003:20;:::i;:::-;25998:25;;26191:1;26123:66;26119:74;26116:1;26113:81;26108:1;26101:9;26094:17;26090:105;26087:131;;;26198:18;;:::i;:::-;26087:131;26246:1;26243;26239:9;26228:20;;25906:348;;;;:::o;26260:180::-;26308:77;26305:1;26298:88;26405:4;26402:1;26395:15;26429:4;26426:1;26419:15;26446:185;26486:1;26503:20;26521:1;26503:20;:::i;:::-;26498:25;;26537:20;26555:1;26537:20;:::i;:::-;26532:25;;26576:1;26566:35;;26581:18;;:::i;:::-;26566:35;26623:1;26620;26616:9;26611:14;;26446:185;;;;:::o;26637:179::-;26777:31;26773:1;26765:6;26761:14;26754:55;26637:179;:::o;26822:366::-;26964:3;26985:67;27049:2;27044:3;26985:67;:::i;:::-;26978:74;;27061:93;27150:3;27061:93;:::i;:::-;27179:2;27174:3;27170:12;27163:19;;26822:366;;;:::o;27194:419::-;27360:4;27398:2;27387:9;27383:18;27375:26;;27447:9;27441:4;27437:20;27433:1;27422:9;27418:17;27411:47;27475:131;27601:4;27475:131;:::i;:::-;27467:139;;27194:419;;;:::o;27619:147::-;27720:11;27757:3;27742:18;;27619:147;;;;:::o;27772:114::-;;:::o;27892:398::-;28051:3;28072:83;28153:1;28148:3;28072:83;:::i;:::-;28065:90;;28164:93;28253:3;28164:93;:::i;:::-;28282:1;28277:3;28273:11;28266:18;;27892:398;;;:::o;28296:379::-;28480:3;28502:147;28645:3;28502:147;:::i;:::-;28495:154;;28666:3;28659:10;;28296:379;;;:::o;28681:245::-;28821:34;28817:1;28809:6;28805:14;28798:58;28890:28;28885:2;28877:6;28873:15;28866:53;28681:245;:::o;28932:366::-;29074:3;29095:67;29159:2;29154:3;29095:67;:::i;:::-;29088:74;;29171:93;29260:3;29171:93;:::i;:::-;29289:2;29284:3;29280:12;29273:19;;28932:366;;;:::o;29304:419::-;29470:4;29508:2;29497:9;29493:18;29485:26;;29557:9;29551:4;29547:20;29543:1;29532:9;29528:17;29521:47;29585:131;29711:4;29585:131;:::i;:::-;29577:139;;29304:419;;;:::o;29729:224::-;29869:34;29865:1;29857:6;29853:14;29846:58;29938:7;29933:2;29925:6;29921:15;29914:32;29729:224;:::o;29959:366::-;30101:3;30122:67;30186:2;30181:3;30122:67;:::i;:::-;30115:74;;30198:93;30287:3;30198:93;:::i;:::-;30316:2;30311:3;30307:12;30300:19;;29959:366;;;:::o;30331:419::-;30497:4;30535:2;30524:9;30520:18;30512:26;;30584:9;30578:4;30574:20;30570:1;30559:9;30555:17;30548:47;30612:131;30738:4;30612:131;:::i;:::-;30604:139;;30331:419;;;:::o;30756:222::-;30896:34;30892:1;30884:6;30880:14;30873:58;30965:5;30960:2;30952:6;30948:15;30941:30;30756:222;:::o;30984:366::-;31126:3;31147:67;31211:2;31206:3;31147:67;:::i;:::-;31140:74;;31223:93;31312:3;31223:93;:::i;:::-;31341:2;31336:3;31332:12;31325:19;;30984:366;;;:::o;31356:419::-;31522:4;31560:2;31549:9;31545:18;31537:26;;31609:9;31603:4;31599:20;31595:1;31584:9;31580:17;31573:47;31637:131;31763:4;31637:131;:::i;:::-;31629:139;;31356:419;;;:::o;31781:225::-;31921:34;31917:1;31909:6;31905:14;31898:58;31990:8;31985:2;31977:6;31973:15;31966:33;31781:225;:::o;32012:366::-;32154:3;32175:67;32239:2;32234:3;32175:67;:::i;:::-;32168:74;;32251:93;32340:3;32251:93;:::i;:::-;32369:2;32364:3;32360:12;32353:19;;32012:366;;;:::o;32384:419::-;32550:4;32588:2;32577:9;32573:18;32565:26;;32637:9;32631:4;32627:20;32623:1;32612:9;32608:17;32601:47;32665:131;32791:4;32665:131;:::i;:::-;32657:139;;32384:419;;;:::o;32809:143::-;32866:5;32897:6;32891:13;32882:22;;32913:33;32940:5;32913:33;:::i;:::-;32809:143;;;;:::o;32958:351::-;33028:6;33077:2;33065:9;33056:7;33052:23;33048:32;33045:119;;;33083:79;;:::i;:::-;33045:119;33203:1;33228:64;33284:7;33275:6;33264:9;33260:22;33228:64;:::i;:::-;33218:74;;33174:128;32958:351;;;;:::o;33315:85::-;33360:7;33389:5;33378:16;;33315:85;;;:::o;33406:158::-;33464:9;33497:61;33515:42;33524:32;33550:5;33524:32;:::i;:::-;33515:42;:::i;:::-;33497:61;:::i;:::-;33484:74;;33406:158;;;:::o;33570:147::-;33665:45;33704:5;33665:45;:::i;:::-;33660:3;33653:58;33570:147;;:::o;33723:114::-;33790:6;33824:5;33818:12;33808:22;;33723:114;;;:::o;33843:184::-;33942:11;33976:6;33971:3;33964:19;34016:4;34011:3;34007:14;33992:29;;33843:184;;;;:::o;34033:132::-;34100:4;34123:3;34115:11;;34153:4;34148:3;34144:14;34136:22;;34033:132;;;:::o;34171:108::-;34248:24;34266:5;34248:24;:::i;:::-;34243:3;34236:37;34171:108;;:::o;34285:179::-;34354:10;34375:46;34417:3;34409:6;34375:46;:::i;:::-;34453:4;34448:3;34444:14;34430:28;;34285:179;;;;:::o;34470:113::-;34540:4;34572;34567:3;34563:14;34555:22;;34470:113;;;:::o;34619:732::-;34738:3;34767:54;34815:5;34767:54;:::i;:::-;34837:86;34916:6;34911:3;34837:86;:::i;:::-;34830:93;;34947:56;34997:5;34947:56;:::i;:::-;35026:7;35057:1;35042:284;35067:6;35064:1;35061:13;35042:284;;;35143:6;35137:13;35170:63;35229:3;35214:13;35170:63;:::i;:::-;35163:70;;35256:60;35309:6;35256:60;:::i;:::-;35246:70;;35102:224;35089:1;35086;35082:9;35077:14;;35042:284;;;35046:14;35342:3;35335:10;;34743:608;;;34619:732;;;;:::o;35357:831::-;35620:4;35658:3;35647:9;35643:19;35635:27;;35672:71;35740:1;35729:9;35725:17;35716:6;35672:71;:::i;:::-;35753:80;35829:2;35818:9;35814:18;35805:6;35753:80;:::i;:::-;35880:9;35874:4;35870:20;35865:2;35854:9;35850:18;35843:48;35908:108;36011:4;36002:6;35908:108;:::i;:::-;35900:116;;36026:72;36094:2;36083:9;36079:18;36070:6;36026:72;:::i;:::-;36108:73;36176:3;36165:9;36161:19;36152:6;36108:73;:::i;:::-;35357:831;;;;;;;;:::o;36194:807::-;36443:4;36481:3;36470:9;36466:19;36458:27;;36495:71;36563:1;36552:9;36548:17;36539:6;36495:71;:::i;:::-;36576:72;36644:2;36633:9;36629:18;36620:6;36576:72;:::i;:::-;36658:80;36734:2;36723:9;36719:18;36710:6;36658:80;:::i;:::-;36748;36824:2;36813:9;36809:18;36800:6;36748:80;:::i;:::-;36838:73;36906:3;36895:9;36891:19;36882:6;36838:73;:::i;:::-;36921;36989:3;36978:9;36974:19;36965:6;36921:73;:::i;:::-;36194:807;;;;;;;;;:::o;37007:143::-;37064:5;37095:6;37089:13;37080:22;;37111:33;37138:5;37111:33;:::i;:::-;37007:143;;;;:::o;37156:663::-;37244:6;37252;37260;37309:2;37297:9;37288:7;37284:23;37280:32;37277:119;;;37315:79;;:::i;:::-;37277:119;37435:1;37460:64;37516:7;37507:6;37496:9;37492:22;37460:64;:::i;:::-;37450:74;;37406:128;37573:2;37599:64;37655:7;37646:6;37635:9;37631:22;37599:64;:::i;:::-;37589:74;;37544:129;37712:2;37738:64;37794:7;37785:6;37774:9;37770:22;37738:64;:::i;:::-;37728:74;;37683:129;37156:663;;;;;:::o
Swarm Source
ipfs://60b7198f6bdb9bef526974a41f38b96ea15de71b5725e9b1021d22430ba09f69
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.