ERC-20
Overview
Max Total Supply
100,000,000 SOGE
Holders
22
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,999,922.2324242 SOGEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SOGE
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-16 */ //SPDX-License-Identifier: MIT /** * https://t.me/sogesurgeetg */ pragma solidity 0.8.17; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } 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 ); function decimals() external view returns (uint8); } interface ISRG { function calculatePrice() external view returns (uint256); function getBNBPrice() external view returns (uint256); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract SOGE is IERC20, Context, Ownable, ReentrancyGuard { event Bought( address indexed from, address indexed to, uint256 tokens, uint256 beans, uint256 dollarBuy ); event Sold( address indexed from, address indexed to, uint256 tokens, uint256 beans, uint256 dollarSell ); event FeesMulChanged(uint256 newBuyMul, uint256 newSellMul); event StablePairChanged(address newStablePair, address newStableToken); event MaxBagChanged(uint256 newMaxBag); // token data string private constant _name = "SOGE"; string private constant _symbol = "SOGE"; uint8 private constant _decimals = 9; uint256 private constant _DECMULTIPLIER = 10**_decimals; //SRG pair data address private constant SRG = 0xcD682EF09d07668d49A8103ddD65Ff54AebFbfDe; //change this according to chain ISRG private constant SRGI = ISRG(SRG); //interface to interact with SRG IERC20 private constant SRGIE = IERC20(SRG); //interace to interact with SRG uint256 private _srgDecimals = SRGIE.decimals(); // Total Supply uint256 public constant _totalSupply = 10**8 * _DECMULTIPLIER; // balances mapping(address => uint256) public _balances; mapping(address => mapping(address => uint256)) internal _allowances; //Fees mapping(address => bool) public isFeeExempt; uint256 public sellMul = 95; uint256 public buyMul = 95; uint256 public constant DIVISOR = 100; //Max bag requirements mapping(address => bool) public isTxLimitExempt; uint256 public maxBag = _totalSupply / 50; //Tax collection uint256 public taxBalance = 0; //Tax wallets address public teamWallet = 0x3Dd97efA6dEd3Fe1d24faef8775C666f11d3ECbd; address public treasuryWallet = 0xe66C6d73976A1578626A9c1D7C1951237BFD2d7f; // Tax Split uint256 public teamShare = 40; uint256 public treasuryShare = 60; uint256 public constant SHAREDIVISOR = 100; //Known Wallets address private constant DEAD = 0x000000000000000000000000000000000000dEaD; //trading parameters uint256 public liquidity = 10**5 * 10**_srgDecimals; uint256 public liqConst = liquidity * _totalSupply; uint256 public constant TRADE_OPEN_TIME = 1673121600; //volume trackers mapping(address => uint256) public indVol; mapping(uint256 => uint256) public tVol; uint256 public totalVolume = 0; //candlestick data uint256 public constant PADDING = 10**18; uint256 public totalTx; mapping(uint256 => uint256) public txTimeStamp; struct candleStick { uint256 time; uint256 open; uint256 close; uint256 high; uint256 low; } mapping(uint256 => candleStick) public candleStickData; //Frontrun Guard mapping(address => uint256) private _lastBuyBlock; // initialize supply constructor() { _balances[address(this)] = _totalSupply; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[address(0)] = true; //burn to be added here if needed emit Transfer(address(0), address(this), _totalSupply); } function totalSupply() external pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "SRG20: approve to the zero address"); require( msg.sender != address(0), "SRG20: approve from the zero address" ); _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - _balances[DEAD]; } function changeWalletLimit(uint256 newLimit) external onlyOwner { require( newLimit >= _totalSupply / 100, "New wallet limit should be at least 1% of total supply" ); maxBag = newLimit; emit MaxBagChanged(newLimit); } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } /** Transfer Function */ function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } /** TransferFrom Function */ function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { address spender = msg.sender; //check allowance requirement _spendAllowance(sender, spender, amount); return _transferFrom(sender, recipient, amount); } /** Internal Transfer */ function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { // make standard checks require( recipient != address(0) && recipient != address(this), "transfer to the zero address or CA" ); require(amount > 0, "Transfer amount must be greater than zero"); require( isTxLimitExempt[recipient] || _balances[recipient] + amount <= maxBag, "Max wallet exceeded!" ); // subtract from sender _balances[sender] = _balances[sender] - amount; // give amount to receiver _balances[recipient] = _balances[recipient] + amount; // Transfer Event emit Transfer(sender, recipient, amount); return true; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "SRG20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "SRG20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } emit Transfer(account, address(0), amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = _allowances[owner][spender]; if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "SRG20: insufficient allowance" ); unchecked { // decrease allowance _approve(owner, spender, currentAllowance - amount); } } } 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); } /** Purchases SURGE Tokens and Deposits Them in Sender's Address*/ function _buy( uint256 buyAmount, uint256 minTokenOut, uint256 deadline ) public nonReentrant returns (bool) { // deadline requirement require(deadline >= block.timestamp, "Deadline EXPIRED"); // Frontrun Guard _lastBuyBlock[msg.sender] = block.number; // liquidity is set require(liquidity > 0, "The token has no liquidity"); // check if trading is open require( block.timestamp >= TRADE_OPEN_TIME, "Trading is not Open" ); //remove the buy tax uint256 srgAmount = isFeeExempt[msg.sender] ? buyAmount : (buyAmount * buyMul) / DIVISOR; // how much they should purchase? uint256 tokensToSend = _balances[address(this)] - (liqConst / (srgAmount + liquidity)); //revert for max bag require( _balances[msg.sender] + tokensToSend <= maxBag || isTxLimitExempt[msg.sender], "Max wallet exceeded" ); // revert if under 1 require(tokensToSend > 1, "SRG20: Must Buy more than 1 decimal"); // revert for slippage require(tokensToSend >= minTokenOut, "INSUFFICIENT OUTPUT AMOUNT"); // transfer the SRG from the msg.sender to the CA bool s = SRGIE.transferFrom(msg.sender, address(this), buyAmount); require(s, "transfer of SRG failed!"); // transfer the tokens from CA to the buyer buy(msg.sender, tokensToSend); //update available tax to extract and Liquidity uint256 taxAmount = buyAmount - srgAmount; taxBalance = taxBalance + taxAmount; liquidity = liquidity + srgAmount; //update volume uint256 cTime = block.timestamp; uint256 dollarBuy = buyAmount * getSRGPrice(); totalVolume += dollarBuy; indVol[msg.sender] += dollarBuy; tVol[cTime] += dollarBuy; //update candleStickData totalTx += 1; txTimeStamp[totalTx] = cTime; uint256 cPrice = calculatePrice() * getSRGPrice(); candleStickData[cTime].time = cTime; if (candleStickData[cTime].open == 0) { if (totalTx == 1) { candleStickData[cTime].open = ((liquidity - srgAmount) / (_totalSupply)) * getSRGPrice(); } else { candleStickData[cTime].open = candleStickData[ txTimeStamp[totalTx - 1] ].close; } } candleStickData[cTime].close = cPrice; if ( candleStickData[cTime].high < cPrice || candleStickData[cTime].high == 0 ) { candleStickData[cTime].high = cPrice; } if ( candleStickData[cTime].low > cPrice || candleStickData[cTime].low == 0 ) { candleStickData[cTime].low = cPrice; } //emit transfer and buy events emit Transfer(address(this), msg.sender, tokensToSend); emit Bought( msg.sender, address(this), tokensToSend, buyAmount, srgAmount * getSRGPrice() ); return true; } /** Sends Tokens to the buyer Address */ function buy(address receiver, uint256 amount) internal { _balances[receiver] = _balances[receiver] + amount; _balances[address(this)] = _balances[address(this)] - amount; } /** Sells SURGE Tokens And Deposits the BNB into Seller's Address */ function _sell( uint256 tokenAmount, uint256 deadline, uint256 minBNBOut ) public nonReentrant returns (bool) { // deadline requirement require(deadline >= block.timestamp, "Deadline EXPIRED"); //Frontrun Guard require( _lastBuyBlock[msg.sender] != block.number, "Buying and selling in the same block is not allowed!" ); address seller = msg.sender; // make sure seller has this balance require( _balances[seller] >= tokenAmount, "cannot sell above token amount" ); // get how much beans are the tokens worth uint256 amountSRG = liquidity - (liqConst / (_balances[address(this)] + tokenAmount)); uint256 amountTax = (amountSRG * (DIVISOR - sellMul)) / DIVISOR; uint256 SRGtoSend = amountSRG - amountTax; //slippage revert require(amountSRG >= minBNBOut, "INSUFFICIENT OUTPUT AMOUNT"); // send SRG to Seller bool successful = isFeeExempt[msg.sender] ? SRGIE.transfer(msg.sender, amountSRG) : SRGIE.transfer(msg.sender, SRGtoSend); require(successful, "SRG transfer failed"); // subtract full amount from sender _balances[seller] = _balances[seller] - tokenAmount; //add tax allowance to be withdrawn and remove from liq the amount of beans taken by the seller taxBalance = isFeeExempt[msg.sender] ? taxBalance : taxBalance + amountTax; liquidity = liquidity - amountSRG; // add tokens back into the contract _balances[address(this)] = _balances[address(this)] + tokenAmount; //update volume uint256 cTime = block.timestamp; uint256 dollarSell = amountSRG * getSRGPrice(); totalVolume += dollarSell; indVol[msg.sender] += dollarSell; tVol[cTime] += dollarSell; //update candleStickData totalTx += 1; txTimeStamp[totalTx] = cTime; uint256 cPrice = calculatePrice() * getSRGPrice(); candleStickData[cTime].time = cTime; if (candleStickData[cTime].open == 0) { candleStickData[cTime].open = candleStickData[ txTimeStamp[totalTx - 1] ].close; } candleStickData[cTime].close = cPrice; if ( candleStickData[cTime].high < cPrice || candleStickData[cTime].high == 0 ) { candleStickData[cTime].high = cPrice; } if ( candleStickData[cTime].low > cPrice || candleStickData[cTime].low == 0 ) { candleStickData[cTime].low = cPrice; } // emit transfer and sell events emit Transfer(seller, address(this), tokenAmount); if (isFeeExempt[msg.sender]) { emit Sold( address(this), msg.sender, tokenAmount, amountSRG, dollarSell ); } else { emit Sold( address(this), msg.sender, tokenAmount, SRGtoSend, SRGtoSend * getSRGPrice() ); } return true; } /** Amount of liquidity in Contract */ function getLiquidity() public view returns (uint256) { return liquidity; } /** Returns the value of your holdings before the sell fee */ function getValueOfHoldings(address holder) public view returns (uint256) { return ((_balances[holder] * liquidity) / _balances[address(this)]) * getSRGPrice(); } function changeFees(uint256 newBuyMul, uint256 newSellMul) external onlyOwner { require( newBuyMul >= 90 && newSellMul >= 90 && newBuyMul <= 100 && newSellMul <= 100, "Fees are too high" ); buyMul = newBuyMul; sellMul = newSellMul; emit FeesMulChanged(newBuyMul, newSellMul); } function changeTaxDistribution( uint256 newteamShare, uint256 newtreasuryShare ) external onlyOwner { require( newteamShare + newtreasuryShare == SHAREDIVISOR, "Sum of shares must be 100" ); teamShare = newteamShare; treasuryShare = newtreasuryShare; } function changeFeeReceivers( address newTeamWallet, address newTreasuryWallet ) external onlyOwner { require( newTeamWallet != address(0) && newTreasuryWallet != address(0), "New wallets must not be the ZERO address" ); teamWallet = newTeamWallet; treasuryWallet = newTreasuryWallet; } function withdrawTaxBalance() external nonReentrant onlyOwner { bool temp1 = SRGIE.transfer( teamWallet, (taxBalance * teamShare) / SHAREDIVISOR ); bool temp2 = SRGIE.transfer( treasuryWallet, (taxBalance * treasuryShare) / SHAREDIVISOR ); assert(temp1 && temp2); taxBalance = 0; } function getTokenAmountOut(uint256 amountSRGIn) external view returns (uint256) { uint256 amountAfter = liqConst / (liquidity - amountSRGIn); uint256 amountBefore = liqConst / liquidity; return amountAfter - amountBefore; } function getsrgAmountOut(uint256 amountIn) public view returns (uint256) { uint256 srgBefore = liqConst / _balances[address(this)]; uint256 srgAfter = liqConst / (_balances[address(this)] + amountIn); return srgBefore - srgAfter; } function addLiquidity(uint256 amountSRGLiq) external onlyOwner { uint256 tokensToAdd = (_balances[address(this)] * amountSRGLiq) / liquidity; require(_balances[msg.sender] >= tokensToAdd, "Not enough tokens!"); bool sLiq = SRGIE.transfer(address(this), amountSRGLiq); require(sLiq, "SRG transfer was unsuccesful!"); uint256 oldLiq = liquidity; liquidity = liquidity + amountSRGLiq; _balances[address(this)] += tokensToAdd; _balances[msg.sender] -= tokensToAdd; liqConst = (liqConst * liquidity) / oldLiq; emit Transfer(msg.sender, address(this), tokensToAdd); } function getMarketCap() external view returns (uint256) { return (getCirculatingSupply() * calculatePrice() * getSRGPrice()); } // calculate price based on pair SRG price function getSRGPrice() public view returns (uint256) { return (SRGI.calculatePrice() * SRGI.getBNBPrice()); // return amount of token0 needed to buy token1 } // Returns the Current Price of the Token in SRG function calculatePrice() public view returns (uint256) { require(liquidity > 0, "No Liquidity"); return liquidity * PADDING / _balances[address(this)]; } }
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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beans","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dollarBuy","type":"uint256"}],"name":"Bought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyMul","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellMul","type":"uint256"}],"name":"FeesMulChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxBag","type":"uint256"}],"name":"MaxBagChanged","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":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beans","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dollarSell","type":"uint256"}],"name":"Sold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newStablePair","type":"address"},{"indexed":false,"internalType":"address","name":"newStableToken","type":"address"}],"name":"StablePairChanged","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":"DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PADDING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHAREDIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADE_OPEN_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyAmount","type":"uint256"},{"internalType":"uint256","name":"minTokenOut","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"_buy","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"minBNBOut","type":"uint256"}],"name":"_sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountSRGLiq","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calculatePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"candleStickData","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"open","type":"uint256"},{"internalType":"uint256","name":"close","type":"uint256"},{"internalType":"uint256","name":"high","type":"uint256"},{"internalType":"uint256","name":"low","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newTeamWallet","type":"address"},{"internalType":"address","name":"newTreasuryWallet","type":"address"}],"name":"changeFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyMul","type":"uint256"},{"internalType":"uint256","name":"newSellMul","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newteamShare","type":"uint256"},{"internalType":"uint256","name":"newtreasuryShare","type":"uint256"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSRGPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountSRGIn","type":"uint256"}],"name":"getTokenAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getValueOfHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"getsrgAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indVol","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqConst","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBag","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tVol","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVolume","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":[],"name":"treasuryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"txTimeStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawTaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604081905263313ce56760e01b815273cd682ef09d07668d49a8103ddd65ff54aebfbfde9063313ce56790608490602090600481865afa1580156200004a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000709190620002ca565b60ff16600255605f60068190556007556032620000906009600a6200040b565b620000a0906305f5e1006200041c565b620000ac919062000436565b6009556000600a908155600b80546001600160a01b0319908116733dd97efa6ded3fe1d24faef8775c666f11d3ecbd17909155600c805490911673e66c6d73976a1578626a9c1d7c1951237bfd2d7f1790556028600d55603c600e55600254620001169162000459565b6200012590620186a06200041c565b600f55620001366009600a6200040b565b62000146906305f5e1006200041c565b600f546200015591906200041c565b60105560006013553480156200016a57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055620001be6009600a6200040b565b620001ce906305f5e1006200041c565b30600081815260036020908152604080832094909455338252600581528382208054600160ff1991821681179092556008909252848320805483168217905583835293822080548216851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216851790558180527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c78054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002a36009600a6200040b565b620002b3906305f5e1006200041c565b60405190815260200160405180910390a362000467565b600060208284031215620002dd57600080fd5b815160ff81168114620002ef57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200034d578160001904821115620003315762000331620002f6565b808516156200033f57918102915b93841c939080029062000311565b509250929050565b600082620003665750600162000405565b81620003755750600062000405565b81600181146200038e57600281146200039957620003b9565b600191505062000405565b60ff841115620003ad57620003ad620002f6565b50506001821b62000405565b5060208310610133831016604e8410600b8410161715620003de575081810a62000405565b620003ea83836200030c565b8060001904821115620004015762000401620002f6565b0290505b92915050565b6000620002ef60ff84168362000355565b8082028115828204841417620004055762000405620002f6565b6000826200045457634e487b7160e01b600052601260045260246000fd5b500490565b6000620002ef838362000355565b612afe80620004776000396000f3fe608060405234801561001057600080fd5b506004361061035d5760003560e01c80637220cf39116101d3578063aa98e16311610104578063e8f620b1116100a2578063f4034e4b1161007c578063f4034e4b14610746578063f7a62fe914610759578063fabe628314610779578063fea2de431461078c57600080fd5b8063e8f620b114610721578063ea6ef2fe1461072a578063f2fde38b1461073357600080fd5b8063d348b409116100de578063d348b409146106c8578063d937e60d146106d0578063dd62ed3e146106df578063e0cfcc951461071857600080fd5b8063aa98e163146106a4578063b1b65246146106ad578063b37659a4146106b557600080fd5b80639cbd09ac11610171578063a13cef3a1161014b578063a13cef3a14610606578063a3a2e89e14610619578063a8fb66b41461062c578063a9059cbb1461069157600080fd5b80639cbd09ac146105d45780639d755026146105f4578063a0e571a2146105fd57600080fd5b80638b42507f116101ad5780638b42507f146105985780638da5cb5b146105bb57806390825c28146105cc57806395d89b411461036257600080fd5b80637220cf39146105735780637796ff371461057c5780637db1342c1461058557600080fd5b80633410fe6e116102ad578063599270441161024b5780636ebcf607116102255780636ebcf6071461050f57806370a082311461052f57806371073b3814610558578063715018a61461056b57600080fd5b806359927044146104f35780635f81a57c1461050657806362ff2e9a1461044f57600080fd5b80634626402b116102875780634626402b1461048257806349ce234c146104ad57806351c6590a146104cd578063571ac8b0146104e057600080fd5b80633410fe6e1461044f5780633eaaf86b146104575780633f4218e01461045f57600080fd5b80631f02a29c1161031a57806323b872dd116102f457806323b872dd1461041a57806325b155561461042d5780632b112e4914610438578063313ce5671461044057600080fd5b80631f02a29c146103e15780631f2c80f1146103f457806321ecff5b1461040757600080fd5b806306fdde03146103625780630910a51014610391578063095ea7b3146103a357806318160ddd146103c65780631a686502146103ce5780631d6bdb5b146103d7575b600080fd5b6040805180820182526004815263534f474560e01b6020820152905161038891906126bb565b60405180910390f35b600f545b604051908152602001610388565b6103b66103b1366004612725565b61079f565b6040519015158152602001610388565b6103956108c5565b610395600f5481565b6103df6108e6565b005b6103956103ef36600461274f565b610ad1565b6103df61040236600461276a565b610b1e565b6103df61041536600461279d565b610bf3565b6103b66104283660046127bf565b610cd0565b6103956363b9cf4081565b610395610cf2565b60405160098152602001610388565b610395606481565b610395610d45565b6103b661046d36600461274f565b60056020526000908152604090205460ff1681565b600c54610495906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b6103956104bb3660046127fb565b60126020526000908152604090205481565b6103df6104db3660046127fb565b610d62565b6103b66104ee36600461274f565b610f7d565b600b54610495906001600160a01b031681565b61039560135481565b61039561051d36600461274f565b60036020526000908152604090205481565b61039561053d36600461274f565b6001600160a01b031660009081526003602052604090205490565b6103956105663660046127fb565b610f8b565b6103df610fd1565b61039560145481565b610395600e5481565b6103df6105933660046127fb565b611045565b6103b66105a636600461274f565b60086020526000908152604090205460ff1681565b6000546001600160a01b0316610495565b61039561113e565b6103956105e236600461274f565b60116020526000908152604090205481565b61039560065481565b61039560075481565b6103956106143660046127fb565b61116c565b6103df610627366004612825565b6111b6565b61066961063a3660046127fb565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610388565b6103b661069f366004612725565b61120b565b610395600a5481565b61039561121f565b6103b66106c336600461285c565b61130d565b6103956119d5565b610395670de0b6b3a764000081565b6103956106ed36600461276a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61039560095481565b61039560105481565b610395600d5481565b6103df61074136600461274f565b611a47565b6103df61075436600461279d565b611b31565b6103956107673660046127fb565b60156020526000908152604090205481565b6103df610787366004612825565b611bbf565b6103b661079a36600461285c565b611c14565b60006001600160a01b0383166108075760405162461bcd60e51b815260206004820152602260248201527f53524732303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b336108605760405162461bcd60e51b8152602060048201526024808201527f53524732303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fe565b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006108d36009600a612982565b6108e1906305f5e100612991565b905090565b6002600154036109085760405162461bcd60e51b81526004016107fe906129a8565b60026001556000546001600160a01b031633146109375760405162461bcd60e51b81526004016107fe906129df565b600b54600d54600a5460009273cd682ef09d07668d49a8103ddd65ff54aebfbfde9263a9059cbb926001600160a01b039092169160649161097791612991565b6109819190612a14565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f09190612a36565b600c54600e54600a5492935060009273cd682ef09d07668d49a8103ddd65ff54aebfbfde9263a9059cbb926001600160a01b0390911691606491610a3391612991565b610a3d9190612a14565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac9190612a36565b9050818015610ab85750805b610ac457610ac4612a53565b50506000600a5560018055565b6000610adb61121f565b3060009081526003602052604080822054600f546001600160a01b03871684529190922054610b0a9190612991565b610b149190612a14565b6108bf9190612991565b6000546001600160a01b03163314610b485760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03821615801590610b6857506001600160a01b03811615155b610bc55760405162461bcd60e51b815260206004820152602860248201527f4e65772077616c6c657473206d757374206e6f7420626520746865205a45524f604482015267206164647265737360c01b60648201526084016107fe565b600b80546001600160a01b039384166001600160a01b031991821617909155600c8054929093169116179055565b6000546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016107fe906129df565b605a8210158015610c2f5750605a8110155b8015610c3c575060648211155b8015610c49575060648111155b610c895760405162461bcd60e51b815260206004820152601160248201527008ccacae640c2e4ca40e8dede40d0d2ced607b1b60448201526064016107fe565b6007829055600681905560408051838152602081018390527fc19ebd395193e8ddaaeda048fb5cb09d4e2dbebcce719174166029a409387856910160405180910390a15050565b600033610cde85828561228d565b610ce985858561231f565b95945050505050565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610d2d6009600a612982565b610d3b906305f5e100612991565b6108e19190612a69565b610d516009600a612982565b610d5f906305f5e100612991565b81565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b81526004016107fe906129df565b600f5430600090815260036020526040812054909190610dad908490612991565b610db79190612a14565b33600090815260036020526040902054909150811115610e0e5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016107fe565b60405163a9059cbb60e01b81523060048201526024810183905260009073cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612a36565b905080610edc5760405162461bcd60e51b815260206004820152601d60248201527f535247207472616e736665722077617320756e73756363657366756c2100000060448201526064016107fe565b600f54610ee98482612a7c565b600f553060009081526003602052604081208054859290610f0b908490612a7c565b90915550503360009081526003602052604081208054859290610f2f908490612a69565b9091555050600f546010548291610f4591612991565b610f4f9190612a14565b60105560405183815230903390600080516020612aa98339815191529060200160405180910390a350505050565b60006108bf8260001961079f565b60008082600f54610f9c9190612a69565b601054610fa99190612a14565b90506000600f54601054610fbd9190612a14565b9050610fc98183612a69565b949350505050565b6000546001600160a01b03163314610ffb5760405162461bcd60e51b81526004016107fe906129df565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461106f5760405162461bcd60e51b81526004016107fe906129df565b606461107d6009600a612982565b61108b906305f5e100612991565b6110959190612a14565b8110156111035760405162461bcd60e51b815260206004820152603660248201527f4e65772077616c6c6574206c696d69742073686f756c64206265206174206c65604482015275617374203125206f6620746f74616c20737570706c7960501b60648201526084016107fe565b60098190556040518181527fb579b5ff4decd3791f679ec8d72f16128df08aa3f346b425480a0135d2e8bf759060200160405180910390a150565b600061114861121f565b6111506119d5565b611158610cf2565b6111629190612991565b6108e19190612991565b30600090815260036020526040812054601054829161118a91612a14565b30600090815260036020526040812054919250906111a9908590612a7c565b601054610fbd9190612a14565b6000546001600160a01b031633146111e05760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600061121833848461231f565b9392505050565b600073cd682ef09d07668d49a8103ddd65ff54aebfbfde6001600160a01b031663f2220c9e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112979190612a8f565b73cd682ef09d07668d49a8103ddd65ff54aebfbfde6001600160a01b031663d348b4096040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111629190612a8f565b60006002600154036113315760405162461bcd60e51b81526004016107fe906129a8565b6002600155428310156113795760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b60448201526064016107fe565b336000908152601760205260409020544390036113f55760405162461bcd60e51b815260206004820152603460248201527f427579696e6720616e642073656c6c696e6720696e207468652073616d6520626044820152736c6f636b206973206e6f7420616c6c6f7765642160601b60648201526084016107fe565b336000818152600360205260409020548511156114545760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e74000060448201526064016107fe565b3060009081526003602052604081205461146f908790612a7c565b60105461147c9190612a14565b600f546114899190612a69565b905060006064600654606461149e9190612a69565b6114a89084612991565b6114b29190612a14565b905060006114c08284612a69565b9050858310156115125760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e5400000000000060448201526064016107fe565b3360009081526005602052604081205460ff166115aa5760405163a9059cbb60e01b81523360048201526024810183905273cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a59190612a36565b611626565b60405163a9059cbb60e01b81523360048201526024810185905273cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612a36565b90508061166b5760405162461bcd60e51b815260206004820152601360248201527214d491c81d1c985b9cd9995c8819985a5b1959606a1b60448201526064016107fe565b6001600160a01b03851660009081526003602052604090205461168f908a90612a69565b6001600160a01b03861660009081526003602090815260408083209390935533825260059052205460ff166116d15782600a546116cc9190612a7c565b6116d5565b600a545b600a55600f546116e6908590612a69565b600f5530600090815260036020526040902054611704908a90612a7c565b30600090815260036020526040812091909155429061172161121f565b61172b9087612991565b9050806013600082825461173f9190612a7c565b90915550503360009081526011602052604081208054839290611763908490612a7c565b909155505060008281526012602052604081208054839290611786908490612a7c565b925050819055506001601460008282546117a09190612a7c565b909155505060145460009081526015602052604081208390556117c161121f565b6117c96119d5565b6117d39190612991565b6000848152601660205260408120858155600101549192500361184357601660006015600060016014546118079190612a69565b81526020019081526020016000205481526020019081526020016000206002015460166000858152602001908152602001600020600101819055505b600083815260166020526040902060028101829055600301548111806118785750600083815260166020526040902060030154155b156118925760008381526016602052604090206003018190555b6000838152601660205260409020600401548110806118c05750600083815260166020526040902060040154155b156118da5760008381526016602052604090206004018190555b6040518c815230906001600160a01b038a1690600080516020612aa98339815191529060200160405180910390a33360009081526005602052604090205460ff161561196a57604080518d815260208101899052908101839052339030907f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e9060600160405180910390a36119c0565b33307f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e8e8861199761121f565b6119a1908b612991565b6040805193845260208401929092529082015260600160405180910390a35b505060018080559a9950505050505050505050565b600080600f5411611a175760405162461bcd60e51b815260206004820152600c60248201526b4e6f204c697175696469747960a01b60448201526064016107fe565b30600090815260036020526040902054600f54611a3d90670de0b6b3a764000090612991565b6108e19190612a14565b6000546001600160a01b03163314611a715760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b038116611ad65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fe565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b5b5760405162461bcd60e51b81526004016107fe906129df565b6064611b678284612a7c565b14611bb45760405162461bcd60e51b815260206004820152601960248201527f53756d206f6620736861726573206d757374206265203130300000000000000060448201526064016107fe565b600d91909155600e55565b6000546001600160a01b03163314611be95760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000600260015403611c385760405162461bcd60e51b81526004016107fe906129a8565b600260015542821015611c805760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b60448201526064016107fe565b336000908152601760205260409020439055600f54611ce15760405162461bcd60e51b815260206004820152601a60248201527f54686520746f6b656e20686173206e6f206c697175696469747900000000000060448201526064016107fe565b6363b9cf40421015611d2b5760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1027b832b760691b60448201526064016107fe565b3360009081526005602052604081205460ff16611d6157606460075486611d529190612991565b611d5c9190612a14565b611d63565b845b90506000600f5482611d759190612a7c565b601054611d829190612a14565b30600090815260036020526040902054611d9c9190612a69565b6009543360009081526003602052604090205491925090611dbe908390612a7c565b111580611dda57503360009081526008602052604090205460ff165b611e1c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fe565b60018111611e785760405162461bcd60e51b815260206004820152602360248201527f53524732303a204d75737420427579206d6f7265207468616e203120646563696044820152621b585b60ea1b60648201526084016107fe565b84811015611ec85760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e5400000000000060448201526064016107fe565b6040516323b872dd60e01b81523360048201523060248201526044810187905260009073cd682ef09d07668d49a8103ddd65ff54aebfbfde906323b872dd906064016020604051808303816000875af1158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612a36565b905080611f9c5760405162461bcd60e51b815260206004820152601760248201527f7472616e73666572206f6620535247206661696c65642100000000000000000060448201526064016107fe565b611fa63383612532565b6000611fb28489612a69565b905080600a54611fc29190612a7c565b600a55600f54611fd3908590612a7c565b600f55426000611fe161121f565b611feb908b612991565b90508060136000828254611fff9190612a7c565b90915550503360009081526011602052604081208054839290612023908490612a7c565b909155505060008281526012602052604081208054839290612046908490612a7c565b925050819055506001601460008282546120609190612a7c565b9091555050601454600090815260156020526040812083905561208161121f565b6120896119d5565b6120939190612991565b6000848152601660205260408120858155600101549192500361216857601454600103612115576120c261121f565b6120ce6009600a612982565b6120dc906305f5e100612991565b88600f546120ea9190612a69565b6120f49190612a14565b6120fe9190612991565b600084815260166020526040902060010155612168565b6016600060156000600160145461212c9190612a69565b81526020019081526020016000205481526020019081526020016000206002015460166000858152602001908152602001600020600101819055505b6000838152601660205260409020600281018290556003015481118061219d5750600083815260166020526040902060030154155b156121b75760008381526016602052604090206003018190555b6000838152601660205260409020600401548110806121e55750600083815260166020526040902060040154155b156121ff5760008381526016602052604090206004018190555b60405186815233903090600080516020612aa98339815191529060200160405180910390a330337f7ce543d1780f3bdc3dac42da06c95da802653cd1b212b8d74ec3e3c33ad7095c888e61225161121f565b61225b908d612991565b6040805193845260208401929092529082015260600160405180910390a3505060018080559998505050505050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905220546000198114612319578181101561230c5760405162461bcd60e51b815260206004820152601d60248201527f53524732303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107fe565b6123198484848403612597565b50505050565b60006001600160a01b0383161580159061234257506001600160a01b0383163014155b6123995760405162461bcd60e51b815260206004820152602260248201527f7472616e7366657220746f20746865207a65726f2061646472657373206f7220604482015261434160f01b60648201526084016107fe565b600082116123fb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fe565b6001600160a01b03831660009081526008602052604090205460ff168061244757506009546001600160a01b038416600090815260036020526040902054612444908490612a7c565b11155b61248a5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742065786365656465642160601b60448201526064016107fe565b6001600160a01b0384166000908152600360205260409020546124ae908390612a69565b6001600160a01b0380861660009081526003602052604080822093909355908516815220546124de908390612a7c565b6001600160a01b038085166000818152600360205260409081902093909355915190861690600080516020612aa9833981519152906125209086815260200190565b60405180910390a35060019392505050565b6001600160a01b038216600090815260036020526040902054612556908290612a7c565b6001600160a01b038316600090815260036020526040808220929092553081522054612583908290612a69565b306000908152600360205260409020555050565b6001600160a01b0383166125f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fe565b6001600160a01b03821661265a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fe565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b818110156126e8578581018301518582016040015282016126cc565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461272057600080fd5b919050565b6000806040838503121561273857600080fd5b61274183612709565b946020939093013593505050565b60006020828403121561276157600080fd5b61121882612709565b6000806040838503121561277d57600080fd5b61278683612709565b915061279460208401612709565b90509250929050565b600080604083850312156127b057600080fd5b50508035926020909101359150565b6000806000606084860312156127d457600080fd5b6127dd84612709565b92506127eb60208501612709565b9150604084013590509250925092565b60006020828403121561280d57600080fd5b5035919050565b801515811461282257600080fd5b50565b6000806040838503121561283857600080fd5b61284183612709565b9150602083013561285181612814565b809150509250929050565b60008060006060848603121561287157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156128d95781600019048211156128bf576128bf612888565b808516156128cc57918102915b93841c93908002906128a3565b509250929050565b6000826128f0575060016108bf565b816128fd575060006108bf565b8160018114612913576002811461291d57612939565b60019150506108bf565b60ff84111561292e5761292e612888565b50506001821b6108bf565b5060208310610133831016604e8410600b841016171561295c575081810a6108bf565b612966838361289e565b806000190482111561297a5761297a612888565b029392505050565b600061121860ff8416836128e1565b80820281158282048414176108bf576108bf612888565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082612a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a4857600080fd5b815161121881612814565b634e487b7160e01b600052600160045260246000fd5b818103818111156108bf576108bf612888565b808201808211156108bf576108bf612888565b600060208284031215612aa157600080fd5b505191905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205e09324b6bb144fef97d45435eece5625d5d1e15766a570433df3c5582cdfc3c64736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061035d5760003560e01c80637220cf39116101d3578063aa98e16311610104578063e8f620b1116100a2578063f4034e4b1161007c578063f4034e4b14610746578063f7a62fe914610759578063fabe628314610779578063fea2de431461078c57600080fd5b8063e8f620b114610721578063ea6ef2fe1461072a578063f2fde38b1461073357600080fd5b8063d348b409116100de578063d348b409146106c8578063d937e60d146106d0578063dd62ed3e146106df578063e0cfcc951461071857600080fd5b8063aa98e163146106a4578063b1b65246146106ad578063b37659a4146106b557600080fd5b80639cbd09ac11610171578063a13cef3a1161014b578063a13cef3a14610606578063a3a2e89e14610619578063a8fb66b41461062c578063a9059cbb1461069157600080fd5b80639cbd09ac146105d45780639d755026146105f4578063a0e571a2146105fd57600080fd5b80638b42507f116101ad5780638b42507f146105985780638da5cb5b146105bb57806390825c28146105cc57806395d89b411461036257600080fd5b80637220cf39146105735780637796ff371461057c5780637db1342c1461058557600080fd5b80633410fe6e116102ad578063599270441161024b5780636ebcf607116102255780636ebcf6071461050f57806370a082311461052f57806371073b3814610558578063715018a61461056b57600080fd5b806359927044146104f35780635f81a57c1461050657806362ff2e9a1461044f57600080fd5b80634626402b116102875780634626402b1461048257806349ce234c146104ad57806351c6590a146104cd578063571ac8b0146104e057600080fd5b80633410fe6e1461044f5780633eaaf86b146104575780633f4218e01461045f57600080fd5b80631f02a29c1161031a57806323b872dd116102f457806323b872dd1461041a57806325b155561461042d5780632b112e4914610438578063313ce5671461044057600080fd5b80631f02a29c146103e15780631f2c80f1146103f457806321ecff5b1461040757600080fd5b806306fdde03146103625780630910a51014610391578063095ea7b3146103a357806318160ddd146103c65780631a686502146103ce5780631d6bdb5b146103d7575b600080fd5b6040805180820182526004815263534f474560e01b6020820152905161038891906126bb565b60405180910390f35b600f545b604051908152602001610388565b6103b66103b1366004612725565b61079f565b6040519015158152602001610388565b6103956108c5565b610395600f5481565b6103df6108e6565b005b6103956103ef36600461274f565b610ad1565b6103df61040236600461276a565b610b1e565b6103df61041536600461279d565b610bf3565b6103b66104283660046127bf565b610cd0565b6103956363b9cf4081565b610395610cf2565b60405160098152602001610388565b610395606481565b610395610d45565b6103b661046d36600461274f565b60056020526000908152604090205460ff1681565b600c54610495906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b6103956104bb3660046127fb565b60126020526000908152604090205481565b6103df6104db3660046127fb565b610d62565b6103b66104ee36600461274f565b610f7d565b600b54610495906001600160a01b031681565b61039560135481565b61039561051d36600461274f565b60036020526000908152604090205481565b61039561053d36600461274f565b6001600160a01b031660009081526003602052604090205490565b6103956105663660046127fb565b610f8b565b6103df610fd1565b61039560145481565b610395600e5481565b6103df6105933660046127fb565b611045565b6103b66105a636600461274f565b60086020526000908152604090205460ff1681565b6000546001600160a01b0316610495565b61039561113e565b6103956105e236600461274f565b60116020526000908152604090205481565b61039560065481565b61039560075481565b6103956106143660046127fb565b61116c565b6103df610627366004612825565b6111b6565b61066961063a3660046127fb565b601660205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a001610388565b6103b661069f366004612725565b61120b565b610395600a5481565b61039561121f565b6103b66106c336600461285c565b61130d565b6103956119d5565b610395670de0b6b3a764000081565b6103956106ed36600461276a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61039560095481565b61039560105481565b610395600d5481565b6103df61074136600461274f565b611a47565b6103df61075436600461279d565b611b31565b6103956107673660046127fb565b60156020526000908152604090205481565b6103df610787366004612825565b611bbf565b6103b661079a36600461285c565b611c14565b60006001600160a01b0383166108075760405162461bcd60e51b815260206004820152602260248201527f53524732303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b336108605760405162461bcd60e51b8152602060048201526024808201527f53524732303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fe565b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006108d36009600a612982565b6108e1906305f5e100612991565b905090565b6002600154036109085760405162461bcd60e51b81526004016107fe906129a8565b60026001556000546001600160a01b031633146109375760405162461bcd60e51b81526004016107fe906129df565b600b54600d54600a5460009273cd682ef09d07668d49a8103ddd65ff54aebfbfde9263a9059cbb926001600160a01b039092169160649161097791612991565b6109819190612a14565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f09190612a36565b600c54600e54600a5492935060009273cd682ef09d07668d49a8103ddd65ff54aebfbfde9263a9059cbb926001600160a01b0390911691606491610a3391612991565b610a3d9190612a14565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac9190612a36565b9050818015610ab85750805b610ac457610ac4612a53565b50506000600a5560018055565b6000610adb61121f565b3060009081526003602052604080822054600f546001600160a01b03871684529190922054610b0a9190612991565b610b149190612a14565b6108bf9190612991565b6000546001600160a01b03163314610b485760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03821615801590610b6857506001600160a01b03811615155b610bc55760405162461bcd60e51b815260206004820152602860248201527f4e65772077616c6c657473206d757374206e6f7420626520746865205a45524f604482015267206164647265737360c01b60648201526084016107fe565b600b80546001600160a01b039384166001600160a01b031991821617909155600c8054929093169116179055565b6000546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016107fe906129df565b605a8210158015610c2f5750605a8110155b8015610c3c575060648211155b8015610c49575060648111155b610c895760405162461bcd60e51b815260206004820152601160248201527008ccacae640c2e4ca40e8dede40d0d2ced607b1b60448201526064016107fe565b6007829055600681905560408051838152602081018390527fc19ebd395193e8ddaaeda048fb5cb09d4e2dbebcce719174166029a409387856910160405180910390a15050565b600033610cde85828561228d565b610ce985858561231f565b95945050505050565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610d2d6009600a612982565b610d3b906305f5e100612991565b6108e19190612a69565b610d516009600a612982565b610d5f906305f5e100612991565b81565b6000546001600160a01b03163314610d8c5760405162461bcd60e51b81526004016107fe906129df565b600f5430600090815260036020526040812054909190610dad908490612991565b610db79190612a14565b33600090815260036020526040902054909150811115610e0e5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f75676820746f6b656e732160701b60448201526064016107fe565b60405163a9059cbb60e01b81523060048201526024810183905260009073cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612a36565b905080610edc5760405162461bcd60e51b815260206004820152601d60248201527f535247207472616e736665722077617320756e73756363657366756c2100000060448201526064016107fe565b600f54610ee98482612a7c565b600f553060009081526003602052604081208054859290610f0b908490612a7c565b90915550503360009081526003602052604081208054859290610f2f908490612a69565b9091555050600f546010548291610f4591612991565b610f4f9190612a14565b60105560405183815230903390600080516020612aa98339815191529060200160405180910390a350505050565b60006108bf8260001961079f565b60008082600f54610f9c9190612a69565b601054610fa99190612a14565b90506000600f54601054610fbd9190612a14565b9050610fc98183612a69565b949350505050565b6000546001600160a01b03163314610ffb5760405162461bcd60e51b81526004016107fe906129df565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461106f5760405162461bcd60e51b81526004016107fe906129df565b606461107d6009600a612982565b61108b906305f5e100612991565b6110959190612a14565b8110156111035760405162461bcd60e51b815260206004820152603660248201527f4e65772077616c6c6574206c696d69742073686f756c64206265206174206c65604482015275617374203125206f6620746f74616c20737570706c7960501b60648201526084016107fe565b60098190556040518181527fb579b5ff4decd3791f679ec8d72f16128df08aa3f346b425480a0135d2e8bf759060200160405180910390a150565b600061114861121f565b6111506119d5565b611158610cf2565b6111629190612991565b6108e19190612991565b30600090815260036020526040812054601054829161118a91612a14565b30600090815260036020526040812054919250906111a9908590612a7c565b601054610fbd9190612a14565b6000546001600160a01b031633146111e05760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600061121833848461231f565b9392505050565b600073cd682ef09d07668d49a8103ddd65ff54aebfbfde6001600160a01b031663f2220c9e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112979190612a8f565b73cd682ef09d07668d49a8103ddd65ff54aebfbfde6001600160a01b031663d348b4096040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111629190612a8f565b60006002600154036113315760405162461bcd60e51b81526004016107fe906129a8565b6002600155428310156113795760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b60448201526064016107fe565b336000908152601760205260409020544390036113f55760405162461bcd60e51b815260206004820152603460248201527f427579696e6720616e642073656c6c696e6720696e207468652073616d6520626044820152736c6f636b206973206e6f7420616c6c6f7765642160601b60648201526084016107fe565b336000818152600360205260409020548511156114545760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f742073656c6c2061626f766520746f6b656e20616d6f756e74000060448201526064016107fe565b3060009081526003602052604081205461146f908790612a7c565b60105461147c9190612a14565b600f546114899190612a69565b905060006064600654606461149e9190612a69565b6114a89084612991565b6114b29190612a14565b905060006114c08284612a69565b9050858310156115125760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e5400000000000060448201526064016107fe565b3360009081526005602052604081205460ff166115aa5760405163a9059cbb60e01b81523360048201526024810183905273cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a59190612a36565b611626565b60405163a9059cbb60e01b81523360048201526024810185905273cd682ef09d07668d49a8103ddd65ff54aebfbfde9063a9059cbb906044016020604051808303816000875af1158015611602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116269190612a36565b90508061166b5760405162461bcd60e51b815260206004820152601360248201527214d491c81d1c985b9cd9995c8819985a5b1959606a1b60448201526064016107fe565b6001600160a01b03851660009081526003602052604090205461168f908a90612a69565b6001600160a01b03861660009081526003602090815260408083209390935533825260059052205460ff166116d15782600a546116cc9190612a7c565b6116d5565b600a545b600a55600f546116e6908590612a69565b600f5530600090815260036020526040902054611704908a90612a7c565b30600090815260036020526040812091909155429061172161121f565b61172b9087612991565b9050806013600082825461173f9190612a7c565b90915550503360009081526011602052604081208054839290611763908490612a7c565b909155505060008281526012602052604081208054839290611786908490612a7c565b925050819055506001601460008282546117a09190612a7c565b909155505060145460009081526015602052604081208390556117c161121f565b6117c96119d5565b6117d39190612991565b6000848152601660205260408120858155600101549192500361184357601660006015600060016014546118079190612a69565b81526020019081526020016000205481526020019081526020016000206002015460166000858152602001908152602001600020600101819055505b600083815260166020526040902060028101829055600301548111806118785750600083815260166020526040902060030154155b156118925760008381526016602052604090206003018190555b6000838152601660205260409020600401548110806118c05750600083815260166020526040902060040154155b156118da5760008381526016602052604090206004018190555b6040518c815230906001600160a01b038a1690600080516020612aa98339815191529060200160405180910390a33360009081526005602052604090205460ff161561196a57604080518d815260208101899052908101839052339030907f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e9060600160405180910390a36119c0565b33307f9be8a5ca22b7e6e81f04b5879f0248227bb770114291bd47dfaee4c3a82ad60e8e8861199761121f565b6119a1908b612991565b6040805193845260208401929092529082015260600160405180910390a35b505060018080559a9950505050505050505050565b600080600f5411611a175760405162461bcd60e51b815260206004820152600c60248201526b4e6f204c697175696469747960a01b60448201526064016107fe565b30600090815260036020526040902054600f54611a3d90670de0b6b3a764000090612991565b6108e19190612a14565b6000546001600160a01b03163314611a715760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b038116611ad65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fe565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b5b5760405162461bcd60e51b81526004016107fe906129df565b6064611b678284612a7c565b14611bb45760405162461bcd60e51b815260206004820152601960248201527f53756d206f6620736861726573206d757374206265203130300000000000000060448201526064016107fe565b600d91909155600e55565b6000546001600160a01b03163314611be95760405162461bcd60e51b81526004016107fe906129df565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000600260015403611c385760405162461bcd60e51b81526004016107fe906129a8565b600260015542821015611c805760405162461bcd60e51b815260206004820152601060248201526f111958591b1a5b99481156141254915160821b60448201526064016107fe565b336000908152601760205260409020439055600f54611ce15760405162461bcd60e51b815260206004820152601a60248201527f54686520746f6b656e20686173206e6f206c697175696469747900000000000060448201526064016107fe565b6363b9cf40421015611d2b5760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1027b832b760691b60448201526064016107fe565b3360009081526005602052604081205460ff16611d6157606460075486611d529190612991565b611d5c9190612a14565b611d63565b845b90506000600f5482611d759190612a7c565b601054611d829190612a14565b30600090815260036020526040902054611d9c9190612a69565b6009543360009081526003602052604090205491925090611dbe908390612a7c565b111580611dda57503360009081526008602052604090205460ff165b611e1c5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107fe565b60018111611e785760405162461bcd60e51b815260206004820152602360248201527f53524732303a204d75737420427579206d6f7265207468616e203120646563696044820152621b585b60ea1b60648201526084016107fe565b84811015611ec85760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e54204f555450555420414d4f554e5400000000000060448201526064016107fe565b6040516323b872dd60e01b81523360048201523060248201526044810187905260009073cd682ef09d07668d49a8103ddd65ff54aebfbfde906323b872dd906064016020604051808303816000875af1158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612a36565b905080611f9c5760405162461bcd60e51b815260206004820152601760248201527f7472616e73666572206f6620535247206661696c65642100000000000000000060448201526064016107fe565b611fa63383612532565b6000611fb28489612a69565b905080600a54611fc29190612a7c565b600a55600f54611fd3908590612a7c565b600f55426000611fe161121f565b611feb908b612991565b90508060136000828254611fff9190612a7c565b90915550503360009081526011602052604081208054839290612023908490612a7c565b909155505060008281526012602052604081208054839290612046908490612a7c565b925050819055506001601460008282546120609190612a7c565b9091555050601454600090815260156020526040812083905561208161121f565b6120896119d5565b6120939190612991565b6000848152601660205260408120858155600101549192500361216857601454600103612115576120c261121f565b6120ce6009600a612982565b6120dc906305f5e100612991565b88600f546120ea9190612a69565b6120f49190612a14565b6120fe9190612991565b600084815260166020526040902060010155612168565b6016600060156000600160145461212c9190612a69565b81526020019081526020016000205481526020019081526020016000206002015460166000858152602001908152602001600020600101819055505b6000838152601660205260409020600281018290556003015481118061219d5750600083815260166020526040902060030154155b156121b75760008381526016602052604090206003018190555b6000838152601660205260409020600401548110806121e55750600083815260166020526040902060040154155b156121ff5760008381526016602052604090206004018190555b60405186815233903090600080516020612aa98339815191529060200160405180910390a330337f7ce543d1780f3bdc3dac42da06c95da802653cd1b212b8d74ec3e3c33ad7095c888e61225161121f565b61225b908d612991565b6040805193845260208401929092529082015260600160405180910390a3505060018080559998505050505050505050565b6001600160a01b038084166000908152600460209081526040808320938616835292905220546000198114612319578181101561230c5760405162461bcd60e51b815260206004820152601d60248201527f53524732303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107fe565b6123198484848403612597565b50505050565b60006001600160a01b0383161580159061234257506001600160a01b0383163014155b6123995760405162461bcd60e51b815260206004820152602260248201527f7472616e7366657220746f20746865207a65726f2061646472657373206f7220604482015261434160f01b60648201526084016107fe565b600082116123fb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fe565b6001600160a01b03831660009081526008602052604090205460ff168061244757506009546001600160a01b038416600090815260036020526040902054612444908490612a7c565b11155b61248a5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742065786365656465642160601b60448201526064016107fe565b6001600160a01b0384166000908152600360205260409020546124ae908390612a69565b6001600160a01b0380861660009081526003602052604080822093909355908516815220546124de908390612a7c565b6001600160a01b038085166000818152600360205260409081902093909355915190861690600080516020612aa9833981519152906125209086815260200190565b60405180910390a35060019392505050565b6001600160a01b038216600090815260036020526040902054612556908290612a7c565b6001600160a01b038316600090815260036020526040808220929092553081522054612583908290612a69565b306000908152600360205260409020555050565b6001600160a01b0383166125f95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fe565b6001600160a01b03821661265a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fe565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208083528351808285015260005b818110156126e8578581018301518582016040015282016126cc565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461272057600080fd5b919050565b6000806040838503121561273857600080fd5b61274183612709565b946020939093013593505050565b60006020828403121561276157600080fd5b61121882612709565b6000806040838503121561277d57600080fd5b61278683612709565b915061279460208401612709565b90509250929050565b600080604083850312156127b057600080fd5b50508035926020909101359150565b6000806000606084860312156127d457600080fd5b6127dd84612709565b92506127eb60208501612709565b9150604084013590509250925092565b60006020828403121561280d57600080fd5b5035919050565b801515811461282257600080fd5b50565b6000806040838503121561283857600080fd5b61284183612709565b9150602083013561285181612814565b809150509250929050565b60008060006060848603121561287157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156128d95781600019048211156128bf576128bf612888565b808516156128cc57918102915b93841c93908002906128a3565b509250929050565b6000826128f0575060016108bf565b816128fd575060006108bf565b8160018114612913576002811461291d57612939565b60019150506108bf565b60ff84111561292e5761292e612888565b50506001821b6108bf565b5060208310610133831016604e8410600b841016171561295c575081810a6108bf565b612966838361289e565b806000190482111561297a5761297a612888565b029392505050565b600061121860ff8416836128e1565b80820281158282048414176108bf576108bf612888565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082612a3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a4857600080fd5b815161121881612814565b634e487b7160e01b600052600160045260246000fd5b818103818111156108bf576108bf612888565b808201808211156108bf576108bf612888565b600060208284031215612aa157600080fd5b505191905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205e09324b6bb144fef97d45435eece5625d5d1e15766a570433df3c5582cdfc3c64736f6c63430008110033
Deployed Bytecode Sourcemap
2685:19383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6544:83;6614:5;;;;;;;;;;;-1:-1:-1;;;6614:5:0;;;;6544:83;;;;6614:5;6544:83;:::i;:::-;;;;;;;;18259:89;18331:9;;18259:89;;;713:25:1;;;701:2;686:18;18259:89:0;567:177:1;6821:450:0;;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;6821:450:0;1186:187:1;6111:102:0;;;:::i;4893:51::-;;;;;;19809:392;;;:::i;:::-;;18423:202;;;;;;:::i;:::-;;:::i;19424:377::-;;;;;;:::i;:::-;;:::i;18633:431::-;;;;;;:::i;:::-;;:::i;8378:335::-;;;;;;:::i;:::-;;:::i;5008:52::-;;5050:10;5008:52;;7409:118;;;:::i;6730:83::-;;;3412:1;2562:36:1;;2550:2;2535:18;6730:83:0;2420:184:1;4201:37:0;;4235:3;4201:37;;3857:61;;;:::i;4084:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4535:74;;;;;-1:-1:-1;;;;;4535:74:0;;;;;;-1:-1:-1;;;;;2773:32:1;;;2755:51;;2743:2;2728:18;4535:74:0;2609:203:1;5140:39:0;;;;;;:::i;:::-;;;;;;;;;;;;;;20775:675;;;;;;:::i;:::-;;:::i;7279:122::-;;;;;;:::i;:::-;;:::i;4458:70::-;;;;;-1:-1:-1;;;;;4458:70:0;;;5186:30;;;;;;3944:44;;;;;;:::i;:::-;;;;;;;;;;;;;;6221:119;;;;;;:::i;:::-;-1:-1:-1;;;;;6314:18:0;6287:7;6314:18;;;:9;:18;;;;;;;6221:119;20209:287;;;;;;:::i;:::-;;:::i;2241:148::-;;;:::i;5296:22::-;;;;;;4672:33;;;;;;7535:284;;;;;;:::i;:::-;;:::i;4275:47::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2027:79;2065:7;2092:6;-1:-1:-1;;;;;2092:6:0;2027:79;;21458:141;;;:::i;5092:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;4134:27;;;;;;4168:26;;;;;;20504:263;;;;;;:::i;:::-;;:::i;7827:122::-;;;;;;:::i;:::-;;:::i;5530:54::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3704:25:1;;;3760:2;3745:18;;3738:34;;;;3788:18;;;3781:34;;;;3846:2;3831:18;;3824:34;3889:3;3874:19;;3867:35;3691:3;3676:19;5530:54:0;3445:463:1;8148:188:0;;;;;;:::i;:::-;;:::i;4401:29::-;;;;;;21655:171;;;:::i;14795:3412::-;;;;;;:::i;:::-;;:::i;21888:177::-;;;:::i;5249:40::-;;5283:6;5249:40;;6348:188;;;;;;:::i;:::-;-1:-1:-1;;;;;6500:19:0;;;6468:7;6500:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6348:188;4329:41;;;;;;4951:50;;;;;;4636:29;;;;;;2397:281;;;;;;:::i;:::-;;:::i;19072:344::-;;;;;;:::i;:::-;;:::i;5325:46::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7957:153;;;;;;:::i;:::-;;:::i;11073:3390::-;;;;;;:::i;:::-;;:::i;6821:450::-;6923:4;-1:-1:-1;;;;;6953:21:0;;6945:68;;;;-1:-1:-1;;;6945:68:0;;4436:2:1;6945:68:0;;;4418:21:1;4475:2;4455:18;;;4448:30;4514:34;4494:18;;;4487:62;-1:-1:-1;;;4565:18:1;;;4558:32;4607:19;;6945:68:0;;;;;;;;;7046:10;7024:110;;;;-1:-1:-1;;;7024:110:0;;4839:2:1;7024:110:0;;;4821:21:1;4878:2;4858:18;;;4851:30;4917:34;4897:18;;;4890:62;-1:-1:-1;;;4968:18:1;;;4961:34;5012:19;;7024:110:0;4637:400:1;7024:110:0;7159:10;7147:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7147:32:0;;;;;;;;;;;;:41;;;7204:37;713:25:1;;;7147:32:0;;7159:10;7204:37;;686:18:1;7204:37:0;;;;;;;-1:-1:-1;7259:4:0;6821:450;;;;;:::o;6111:102::-;6166:7;3462:13;3412:1;3462:2;:13;:::i;:::-;3896:22;;:5;:22;:::i;:::-;6186:19;;6111:102;:::o;19809:392::-;228:1;374:7;;:19;366:63;;;;-1:-1:-1;;;366:63:0;;;;;;;:::i;:::-;228:1;440:7;:18;2154:6:::1;::::0;-1:-1:-1;;;;;2154:6:0::1;1657:10:::0;2154:22:::1;2146:67;;;;-1:-1:-1::0;;;2146:67:0::1;;;;;;;:::i;:::-;19924:10:::2;::::0;19963:9:::2;::::0;19950:10:::2;::::0;19882::::2;::::0;3536:42:::2;::::0;19895:14:::2;::::0;-1:-1:-1;;;;;19924:10:0;;::::2;::::0;4751:3:::2;::::0;19950:22:::2;::::0;::::2;:::i;:::-;19949:39;;;;:::i;:::-;19895:104;::::0;-1:-1:-1;;;;;;19895:104:0::2;::::0;;;;;;-1:-1:-1;;;;;7865:32:1;;;19895:104:0::2;::::0;::::2;7847:51:1::0;7914:18;;;7907:34;7820:18;;19895:104:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20052:14;::::0;20095:13:::2;::::0;20082:10:::2;::::0;19882:117;;-1:-1:-1;20010:10:0::2;::::0;3536:42:::2;::::0;20023:14:::2;::::0;-1:-1:-1;;;;;20052:14:0;;::::2;::::0;4751:3:::2;::::0;20082:26:::2;::::0;::::2;:::i;:::-;20081:43;;;;:::i;:::-;20023:112;::::0;-1:-1:-1;;;;;;20023:112:0::2;::::0;;;;;;-1:-1:-1;;;;;7865:32:1;;;20023:112:0::2;::::0;::::2;7847:51:1::0;7914:18;;;7907:34;7820:18;;20023:112:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20010:125;;20153:5;:14;;;;;20162:5;20153:14;20146:22;;;;:::i;:::-;-1:-1:-1::0;;20192:1:0::2;20179:10;:14:::0;184:1;481:22;;19809:392::o;18423:202::-;18488:7;18604:13;:11;:13::i;:::-;18581:4;18563:24;;;;:9;:24;;;;;;;18550:9;;-1:-1:-1;;;;;18530:17:0;;;;;;;;;:29;;18550:9;18530:29;:::i;:::-;18529:58;;;;:::i;:::-;18528:89;;;;:::i;19424:377::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19579:27:0;::::1;::::0;;::::1;::::0;:62:::1;;-1:-1:-1::0;;;;;;19610:31:0;::::1;::::0;::::1;19579:62;19557:152;;;::::0;-1:-1:-1;;;19557:152:0;;8536:2:1;19557:152:0::1;::::0;::::1;8518:21:1::0;8575:2;8555:18;;;8548:30;8614:34;8594:18;;;8587:62;-1:-1:-1;;;8665:18:1;;;8658:38;8713:19;;19557:152:0::1;8334:404:1::0;19557:152:0::1;19722:10;:26:::0;;-1:-1:-1;;;;;19722:26:0;;::::1;-1:-1:-1::0;;;;;;19722:26:0;;::::1;;::::0;;;19759:14:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;19424:377::o;18633:431::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;18780:2:::1;18767:9;:15;;:52;;;;;18817:2;18803:10;:16;;18767:52;:89;;;;;18853:3;18840:9;:16;;18767:89;:127;;;;;18891:3;18877:10;:17;;18767:127;18745:194;;;::::0;-1:-1:-1;;;18745:194:0;;8945:2:1;18745:194:0::1;::::0;::::1;8927:21:1::0;8984:2;8964:18;;;8957:30;-1:-1:-1;;;9003:18:1;;;8996:47;9060:18;;18745:194:0::1;8743:341:1::0;18745:194:0::1;18952:6;:18:::0;;;18981:7:::1;:20:::0;;;19019:37:::1;::::0;;9263:25:1;;;9319:2;9304:18;;9297:34;;;19019:37:0::1;::::0;9236:18:1;19019:37:0::1;;;;;;;18633:431:::0;;:::o;8378:335::-;8512:4;8547:10;8607:40;8623:6;8547:10;8640:6;8607:15;:40::i;:::-;8665;8679:6;8687:9;8698:6;8665:13;:40::i;:::-;8658:47;8378:335;-1:-1:-1;;;;;8378:335:0:o;7409:118::-;4816:42;7462:7;7504:15;;;:9;:15;;;;3462:13;3412:1;3462:2;:13;:::i;:::-;3896:22;;:5;:22;:::i;:::-;7489:30;;;;:::i;3857:61::-;3462:13;3412:1;3462:2;:13;:::i;:::-;3896:22;;:5;:22;:::i;:::-;3857:61;:::o;20775:675::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;20928:9:::1;::::0;20890:4:::1;20849:19;20872:24:::0;;;:9:::1;:24;::::0;;;;;20849:19;;20928:9;20872:39:::1;::::0;20899:12;;20872:39:::1;:::i;:::-;20871:66;;;;:::i;:::-;20966:10;20956:21;::::0;;;:9:::1;:21;::::0;;;;;20849:88;;-1:-1:-1;20956:36:0;-1:-1:-1;20956:36:0::1;20948:67;;;::::0;-1:-1:-1;;;20948:67:0;;9677:2:1;20948:67:0::1;::::0;::::1;9659:21:1::0;9716:2;9696:18;;;9689:30;-1:-1:-1;;;9735:18:1;;;9728:48;9793:18;;20948:67:0::1;9475:342:1::0;20948:67:0::1;21040:43;::::0;-1:-1:-1;;;21040:43:0;;21063:4:::1;21040:43;::::0;::::1;7847:51:1::0;7914:18;;;7907:34;;;21028:9:0::1;::::0;3536:42:::1;::::0;21040:14:::1;::::0;7820:18:1;;21040:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21028:55;;21102:4;21094:46;;;::::0;-1:-1:-1;;;21094:46:0;;10024:2:1;21094:46:0::1;::::0;::::1;10006:21:1::0;10063:2;10043:18;;;10036:30;10102:31;10082:18;;;10075:59;10151:18;;21094:46:0::1;9822:353:1::0;21094:46:0::1;21170:9;::::0;21202:24:::1;21214:12:::0;21170:9;21202:24:::1;:::i;:::-;21190:9;:36:::0;21255:4:::1;21237:24;::::0;;;:9:::1;:24;::::0;;;;:39;;21265:11;;21237:24;:39:::1;::::0;21265:11;;21237:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;21297:10:0::1;21287:21;::::0;;;:9:::1;:21;::::0;;;;:36;;21312:11;;21287:21;:36:::1;::::0;21312:11;;21287:36:::1;:::i;:::-;::::0;;;-1:-1:-1;;21357:9:0::1;::::0;21346:8:::1;::::0;21370:6;;21346:20:::1;::::0;::::1;:::i;:::-;21345:31;;;;:::i;:::-;21334:8;:42:::0;21394:48:::1;::::0;713:25:1;;;21423:4:0::1;::::0;21403:10:::1;::::0;-1:-1:-1;;;;;;;;;;;21394:48:0;701:2:1;686:18;21394:48:0::1;;;;;;;20838:612;;;20775:675:::0;:::o;7279:122::-;7334:4;7358:35;7366:7;-1:-1:-1;;7358:7:0;:35::i;20209:287::-;20307:7;20332:19;20378:11;20366:9;;:23;;;;:::i;:::-;20354:8;;:36;;;;:::i;:::-;20332:58;;20401:20;20435:9;;20424:8;;:20;;;;:::i;:::-;20401:43;-1:-1:-1;20462:26:0;20401:43;20462:11;:26;:::i;:::-;20455:33;20209:287;-1:-1:-1;;;;20209:287:0:o;2241:148::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;2348:1:::1;2332:6:::0;;2311:40:::1;::::0;-1:-1:-1;;;;;2332:6:0;;::::1;::::0;2311:40:::1;::::0;2348:1;;2311:40:::1;2379:1;2362:19:::0;;-1:-1:-1;;;;;;2362:19:0::1;::::0;;2241:148::o;7535:284::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;7659:3:::1;3462:13;3412:1;3462:2;:13;:::i;:::-;3896:22;::::0;:5:::1;:22;:::i;:::-;7644:18;;;;:::i;:::-;7632:8;:30;;7610:134;;;::::0;-1:-1:-1;;;7610:134:0;;10512:2:1;7610:134:0::1;::::0;::::1;10494:21:1::0;10551:2;10531:18;;;10524:30;10590:34;10570:18;;;10563:62;-1:-1:-1;;;10641:18:1;;;10634:52;10703:19;;7610:134:0::1;10310:418:1::0;7610:134:0::1;7755:6;:17:::0;;;7788:23:::1;::::0;713:25:1;;;7788:23:0::1;::::0;701:2:1;686:18;7788:23:0::1;;;;;;;7535:284:::0;:::o;21458:141::-;21505:7;21577:13;:11;:13::i;:::-;21558:16;:14;:16::i;:::-;21533:22;:20;:22::i;:::-;:41;;;;:::i;:::-;:57;;;;:::i;20504:263::-;20637:4;20568:7;20619:24;;;:9;:24;;;;;;20608:8;;20568:7;;20608:35;;;:::i;:::-;20703:4;20654:16;20685:24;;;:9;:24;;;;;;20588:55;;-1:-1:-1;20654:16:0;20685:35;;20712:8;;20685:35;:::i;:::-;20673:8;;:48;;;;:::i;7827:122::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7913:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;7913:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7827:122::o;8148:188::-;8255:4;8284:44;8298:10;8310:9;8321:6;8284:13;:44::i;:::-;8277:51;8148:188;-1:-1:-1;;;8148:188:0:o;21655:171::-;21699:7;3536:42;-1:-1:-1;;;;;21751:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3536:42;-1:-1:-1;;;;;21727:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14795:3412::-;14931:4;228:1;374:7;;:19;366:63;;;;-1:-1:-1;;;366:63:0;;;;;;;:::i;:::-;228:1;440:7;:18;15001:15:::1;14989:27:::0;::::1;;14981:56;;;::::0;-1:-1:-1;;;14981:56:0;;11124:2:1;14981:56:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;-1:-1:-1;;;11182:18:1;;;11175:46;11238:18;;14981:56:0::1;10922:340:1::0;14981:56:0::1;15112:10;15098:25;::::0;;;:13:::1;:25;::::0;;;;;15127:12:::1;15098:41:::0;;15076:143:::1;;;::::0;-1:-1:-1;;;15076:143:0;;11469:2:1;15076:143:0::1;::::0;::::1;11451:21:1::0;11508:2;11488:18;;;11481:30;11547:34;11527:18;;;11520:62;-1:-1:-1;;;11598:18:1;;;11591:50;11658:19;;15076:143:0::1;11267:416:1::0;15076:143:0::1;15249:10;15232:14;15340:17:::0;;;:9:::1;:17;::::0;;;;;:32;-1:-1:-1;15340:32:0::1;15318:112;;;::::0;-1:-1:-1;;;15318:112:0;;11890:2:1;15318:112:0::1;::::0;::::1;11872:21:1::0;11929:2;11909:18;;;11902:30;11968:32;11948:18;;;11941:60;12018:18;;15318:112:0::1;11688:354:1::0;15318:112:0::1;15571:4;15495:17;15553:24:::0;;;:9:::1;:24;::::0;;;;;:38:::1;::::0;15580:11;;15553:38:::1;:::i;:::-;15541:8;;:51;;;;:::i;:::-;15515:9;;:78;;;;:::i;:::-;15495:98;;15604:17;4235:3;15648:7;;4235:3;15638:17;;;;:::i;:::-;15625:31;::::0;:9;:31:::1;:::i;:::-;15624:43;;;;:::i;:::-;15604:63:::0;-1:-1:-1;15678:17:0::1;15698:21;15604:63:::0;15698:9;:21:::1;:::i;:::-;15678:41;;15780:9;15767;:22;;15759:61;;;::::0;-1:-1:-1;;;15759:61:0;;12249:2:1;15759:61:0::1;::::0;::::1;12231:21:1::0;12288:2;12268:18;;;12261:30;12327:28;12307:18;;;12300:56;12373:18;;15759:61:0::1;12047:350:1::0;15759:61:0::1;15896:10;15866:15;15884:23:::0;;;:11:::1;:23;::::0;;;;;::::1;;:129;;15976:37;::::0;-1:-1:-1;;;15976:37:0;;15991:10:::1;15976:37;::::0;::::1;7847:51:1::0;7914:18;;;7907:34;;;3536:42:0::1;::::0;15976:14:::1;::::0;7820:18:1;;15976:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15884:129;;;15923:37;::::0;-1:-1:-1;;;15923:37:0;;15938:10:::1;15923:37;::::0;::::1;7847:51:1::0;7914:18;;;7907:34;;;3536:42:0::1;::::0;15923:14:::1;::::0;7820:18:1;;15923:37:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15866:147;;16032:10;16024:42;;;::::0;-1:-1:-1;;;16024:42:0;;12604:2:1;16024:42:0::1;::::0;::::1;12586:21:1::0;12643:2;12623:18;;;12616:30;-1:-1:-1;;;12662:18:1;;;12655:49;12721:18;;16024:42:0::1;12402:343:1::0;16024:42:0::1;-1:-1:-1::0;;;;;16144:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:31:::1;::::0;16164:11;;16144:31:::1;:::i;:::-;-1:-1:-1::0;;;;;16124:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;:51;;;;16318:10:::1;16306:23:::0;;:11:::1;:23:::0;;;;::::1;;:87;;16384:9;16371:10;;:22;;;;:::i;:::-;16306:87;;;16345:10;;16306:87;16293:10;:100:::0;16416:9:::1;::::0;:21:::1;::::0;16428:9;;16416:21:::1;:::i;:::-;16404:9;:33:::0;16541:4:::1;16523:24;::::0;;;:9:::1;:24;::::0;;;;;:38:::1;::::0;16550:11;;16523:38:::1;:::i;:::-;16514:4;16496:24;::::0;;;:9:::1;:24;::::0;;;;:65;;;;16615:15:::1;::::0;16674:13:::1;:11;:13::i;:::-;16662:25;::::0;:9;:25:::1;:::i;:::-;16641:46;;16713:10;16698:11;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;16741:10:0::1;16734:18;::::0;;;:6:::1;:18;::::0;;;;:32;;16756:10;;16734:18;:32:::1;::::0;16756:10;;16734:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;16777:11:0::1;::::0;;;:4:::1;:11;::::0;;;;:25;;16792:10;;16777:11;:25:::1;::::0;16792:10;;16777:25:::1;:::i;:::-;;;;;;;;16860:1;16849:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;16884:7:0::1;::::0;16872:20:::1;::::0;;;:11:::1;:20;::::0;;;;:28;;;16947:13:::1;:11;:13::i;:::-;16928:16;:14;:16::i;:::-;:32;;;;:::i;:::-;16971:22;::::0;;;:15:::1;:22;::::0;;;;:35;;;17021:27:::1;;::::0;16911:49;;-1:-1:-1;17021:32:0;17017:174:::1;;17100:15;:73;17134:11;:24;17156:1;17146:7;;:11;;;;:::i;:::-;17134:24;;;;;;;;;;;;17100:73;;;;;;;;;;;:79;;;17070:15;:22;17086:5;17070:22;;;;;;;;;;;:27;;:109;;;;17017:174;17201:22;::::0;;;:15:::1;:22;::::0;;;;:28:::1;::::0;::::1;:37:::0;;;17269:27:::1;;::::0;:36;-1:-1:-1;17269:36:0;:85:::1;;-1:-1:-1::0;17322:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;::::0;:32;17269:85:::1;17251:178;;;17381:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:36:::0;;;17251:178:::1;17459:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:35;-1:-1:-1;17459:35:0;:83:::1;;-1:-1:-1::0;17511:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:31;17459:83:::1;17441:175;;;17569:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;:35:::0;;;17441:175:::1;17675:44;::::0;713:25:1;;;17700:4:0::1;::::0;-1:-1:-1;;;;;17675:44:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;17675:44:0;701:2:1;686:18;17675:44:0::1;;;;;;;17746:10;17734:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;17730:448;;;17779:167;::::0;;12952:25:1;;;13008:2;12993:18;;12986:34;;;13036:18;;;13029:34;;;17834:10:0::1;::::0;17810:4:::1;::::0;17779:167:::1;::::0;12940:2:1;12925:18;17779:167:0::1;;;;;;;17730:448;;;18039:10;18015:4;17984:182;18068:11:::0;18098:9;18138:13:::1;:11;:13::i;:::-;18126:25;::::0;:9;:25:::1;:::i;:::-;17984:182;::::0;;12952:25:1;;;13008:2;12993:18;;12986:34;;;;13036:18;;;13029:34;12940:2;12925:18;17984:182:0::1;;;;;;;17730:448;-1:-1:-1::0;;18195:4:0::1;481:22:::0;;;18195:4;14795:3412;-1:-1:-1;;;;;;;;;;14795:3412:0:o;21888:177::-;21935:7;21975:1;21963:9;;:13;21955:38;;;;-1:-1:-1;;;21955:38:0;;13276:2:1;21955:38:0;;;13258:21:1;13315:2;13295:18;;;13288:30;-1:-1:-1;;;13334:18:1;;;13327:42;13386:18;;21955:38:0;13074:336:1;21955:38:0;22051:4;22033:24;;;;:9;:24;;;;;;22011:9;;:19;;5283:6;;22011:19;:::i;:::-;:46;;;;:::i;2397:281::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2500:22:0;::::1;2478:110;;;::::0;-1:-1:-1;;;2478:110:0;;13617:2:1;2478:110:0::1;::::0;::::1;13599:21:1::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;-1:-1:-1;;;13746:18:1;;;13739:36;13792:19;;2478:110:0::1;13415:402:1::0;2478:110:0::1;2625:6;::::0;;2604:38:::1;::::0;-1:-1:-1;;;;;2604:38:0;;::::1;::::0;2625:6;::::1;::::0;2604:38:::1;::::0;::::1;2653:6;:17:::0;;-1:-1:-1;;;;;;2653:17:0::1;-1:-1:-1::0;;;;;2653:17:0;;;::::1;::::0;;;::::1;::::0;;2397:281::o;19072:344::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;4751:3:::1;19228:31;19243:16:::0;19228:12;:31:::1;:::i;:::-;:47;19206:122;;;::::0;-1:-1:-1;;;19206:122:0;;14024:2:1;19206:122:0::1;::::0;::::1;14006:21:1::0;14063:2;14043:18;;;14036:30;14102:27;14082:18;;;14075:55;14147:18;;19206:122:0::1;13822:349:1::0;19206:122:0::1;19341:9;:24:::0;;;;19376:13:::1;:32:::0;19072:344::o;7957:153::-;2154:6;;-1:-1:-1;;;;;2154:6:0;1657:10;2154:22;2146:67;;;;-1:-1:-1;;;2146:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8070:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;8070:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7957:153::o;11073:3390::-;11208:4;228:1;374:7;;:19;366:63;;;;-1:-1:-1;;;366:63:0;;;;;;;:::i;:::-;228:1;440:7;:18;11278:15:::1;11266:27:::0;::::1;;11258:56;;;::::0;-1:-1:-1;;;11258:56:0;;11124:2:1;11258:56:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;-1:-1:-1;;;11182:18:1;;;11175:46;11238:18;;11258:56:0::1;10922:340:1::0;11258:56:0::1;11368:10;11354:25;::::0;;;:13:::1;:25;::::0;;;;11382:12:::1;11354:40:::0;;11444:9:::1;::::0;11436:52:::1;;;::::0;-1:-1:-1;;;11436:52:0;;14378:2:1;11436:52:0::1;::::0;::::1;14360:21:1::0;14417:2;14397:18;;;14390:30;14456:28;14436:18;;;14429:56;14502:18;;11436:52:0::1;14176:350:1::0;11436:52:0::1;5050:10;11560:15;:34;;11538:103;;;::::0;-1:-1:-1;;;11538:103:0;;14733:2:1;11538:103:0::1;::::0;::::1;14715:21:1::0;14772:2;14752:18;;;14745:30;-1:-1:-1;;;14791:18:1;;;14784:49;14850:18;;11538:103:0::1;14531:343:1::0;11538:103:0::1;11716:10;11684:17;11704:23:::0;;;:11:::1;:23;::::0;;;;;::::1;;:94;;4235:3;11781:6;;11769:9;:18;;;;:::i;:::-;11768:30;;;;:::i;:::-;11704:94;;;11743:9;11704:94;11684:114;;11854:20;11942:9;;11930;:21;;;;:::i;:::-;11918:8;;:34;;;;:::i;:::-;11895:4;11877:24;::::0;;;:9:::1;:24;::::0;;;;;:76:::1;::::0;;::::1;:::i;:::-;12058:6;::::0;12028:10:::1;12018:21;::::0;;;:9:::1;:21;::::0;;;;;11854:99;;-1:-1:-1;12058:6:0;12018:36:::1;::::0;11854:99;;12018:36:::1;:::i;:::-;:46;;:94;;;-1:-1:-1::0;12101:10:0::1;12085:27;::::0;;;:15:::1;:27;::::0;;;;;::::1;;12018:94;11996:163;;;::::0;-1:-1:-1;;;11996:163:0;;15081:2:1;11996:163:0::1;::::0;::::1;15063:21:1::0;15120:2;15100:18;;;15093:30;-1:-1:-1;;;15139:18:1;;;15132:49;15198:18;;11996:163:0::1;14879:343:1::0;11996:163:0::1;12225:1;12210:12;:16;12202:64;;;::::0;-1:-1:-1;;;12202:64:0;;15429:2:1;12202:64:0::1;::::0;::::1;15411:21:1::0;15468:2;15448:18;;;15441:30;15507:34;15487:18;;;15480:62;-1:-1:-1;;;15558:18:1;;;15551:33;15601:19;;12202:64:0::1;15227:399:1::0;12202:64:0::1;12335:11;12319:12;:27;;12311:66;;;::::0;-1:-1:-1;;;12311:66:0;;12249:2:1;12311:66:0::1;::::0;::::1;12231:21:1::0;12288:2;12268:18;;;12261:30;12327:28;12307:18;;;12300:56;12373:18;;12311:66:0::1;12047:350:1::0;12311:66:0::1;12466:56;::::0;-1:-1:-1;;;12466:56:0;;12485:10:::1;12466:56;::::0;::::1;15871:34:1::0;12505:4:0::1;15921:18:1::0;;;15914:43;15973:18;;;15966:34;;;12457:6:0::1;::::0;3536:42:::1;::::0;12466:18:::1;::::0;15806::1;;12466:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12457:65;;12543:1;12535:37;;;::::0;-1:-1:-1;;;12535:37:0;;16213:2:1;12535:37:0::1;::::0;::::1;16195:21:1::0;16252:2;16232:18;;;16225:30;16291:25;16271:18;;;16264:53;16334:18;;12535:37:0::1;16011:347:1::0;12535:37:0::1;12638:29;12642:10;12654:12;12638:3;:29::i;:::-;12737:17;12757:21;12769:9:::0;12757;:21:::1;:::i;:::-;12737:41;;12815:9;12802:10;;:22;;;;:::i;:::-;12789:10;:35:::0;12847:9:::1;::::0;:21:::1;::::0;12859:9;;12847:21:::1;:::i;:::-;12835:9;:33:::0;12922:15:::1;12906:13;12980;:11;:13::i;:::-;12968:25;::::0;:9;:25:::1;:::i;:::-;12948:45;;13019:9;13004:11;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13046:10:0::1;13039:18;::::0;;;:6:::1;:18;::::0;;;;:31;;13061:9;;13039:18;:31:::1;::::0;13061:9;;13039:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;13081:11:0::1;::::0;;;:4:::1;:11;::::0;;;;:24;;13096:9;;13081:11;:24:::1;::::0;13096:9;;13081:24:::1;:::i;:::-;;;;;;;;13163:1;13152:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13187:7:0::1;::::0;13175:20:::1;::::0;;;:11:::1;:20;::::0;;;;:28;;;13250:13:::1;:11;:13::i;:::-;13231:16;:14;:16::i;:::-;:32;;;;:::i;:::-;13274:22;::::0;;;:15:::1;:22;::::0;;;;:35;;;13324:27:::1;;::::0;13214:49;;-1:-1:-1;13324:32:0;13320:405:::1;;13377:7;;13388:1;13377:12:::0;13373:341:::1;;13527:13;:11;:13::i;:::-;3462;3412:1;3462:2;:13;:::i;:::-;3896:22;::::0;:5:::1;:22;:::i;:::-;13475:9;13463;;:21;;;;:::i;:::-;13462:40;;;;:::i;:::-;13461:79;;;;:::i;:::-;13410:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:130:::0;13373:341:::1;;;13611:15;:81;13649:11;:24;13671:1;13661:7;;:11;;;;:::i;:::-;13649:24;;;;;;;;;;;;13611:81;;;;;;;;;;;:87;;;13581:15;:22;13597:5;13581:22;;;;;;;;;;;:27;;:117;;;;13373:341;13735:22;::::0;;;:15:::1;:22;::::0;;;;:28:::1;::::0;::::1;:37:::0;;;13803:27:::1;;::::0;:36;-1:-1:-1;13803:36:0;:85:::1;;-1:-1:-1::0;13856:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;::::0;:32;13803:85:::1;13785:178;;;13915:22;::::0;;;:15:::1;:22;::::0;;;;:27:::1;;:36:::0;;;13785:178:::1;13993:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:35;-1:-1:-1;13993:35:0;:83:::1;;-1:-1:-1::0;14045:22:0::1;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;::::0;:31;13993:83:::1;13975:175;;;14103:22;::::0;;;:15:::1;:22;::::0;;;;:26:::1;;:35:::0;;;13975:175:::1;14207:49;::::0;713:25:1;;;14231:10:0::1;::::0;14224:4:::1;::::0;-1:-1:-1;;;;;;;;;;;14207:49:0;701:2:1;686:18;14207:49:0::1;;;;;;;14326:4;14293:10;14272:161;14346:12:::0;14373:9;14409:13:::1;:11;:13::i;:::-;14397:25;::::0;:9;:25:::1;:::i;:::-;14272:161;::::0;;12952:25:1;;;13008:2;12993:18;;12986:34;;;;13036:18;;;13029:34;12940:2;12925:18;14272:161:0::1;;;;;;;-1:-1:-1::0;;14451:4:0::1;481:22:::0;;;14451:4;11073:3390;-1:-1:-1;;;;;;;;;11073:3390:0:o;10060:545::-;-1:-1:-1;;;;;10222:18:0;;;10195:24;10222:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10264:37:0;;10260:338;;10364:6;10344:16;:26;;10318:117;;;;-1:-1:-1;;;10318:117:0;;16565:2:1;10318:117:0;;;16547:21:1;16604:2;16584:18;;;16577:30;16643:31;16623:18;;;16616:59;16692:18;;10318:117:0;16363:353:1;10318:117:0;10520:51;10529:5;10536:7;10564:6;10545:16;:25;10520:8;:51::i;:::-;10184:421;10060:545;;;:::o;8751:858::-;8877:4;-1:-1:-1;;;;;8949:23:0;;;;;;:53;;-1:-1:-1;;;;;;8976:26:0;;8997:4;8976:26;;8949:53;8927:137;;;;-1:-1:-1;;;8927:137:0;;16923:2:1;8927:137:0;;;16905:21:1;16962:2;16942:18;;;16935:30;17001:34;16981:18;;;16974:62;-1:-1:-1;;;17052:18:1;;;17045:32;17094:19;;8927:137:0;16721:398:1;8927:137:0;9092:1;9083:6;:10;9075:64;;;;-1:-1:-1;;;9075:64:0;;17326:2:1;9075:64:0;;;17308:21:1;17365:2;17345:18;;;17338:30;17404:34;17384:18;;;17377:62;-1:-1:-1;;;17455:18:1;;;17448:39;17504:19;;9075:64:0;17124:405:1;9075:64:0;-1:-1:-1;;;;;9172:26:0;;;;;;:15;:26;;;;;;;;;:86;;-1:-1:-1;9252:6:0;;-1:-1:-1;;;;;9219:20:0;;;;;;:9;:20;;;;;;:29;;9242:6;;9219:29;:::i;:::-;:39;;9172:86;9150:156;;;;-1:-1:-1;;;9150:156:0;;17736:2:1;9150:156:0;;;17718:21:1;17775:2;17755:18;;;17748:30;-1:-1:-1;;;17794:18:1;;;17787:50;17854:18;;9150:156:0;17534:344:1;9150:156:0;-1:-1:-1;;;;;9372:17:0;;;;;;:9;:17;;;;;;:26;;9392:6;;9372:26;:::i;:::-;-1:-1:-1;;;;;9352:17:0;;;;;;;:9;:17;;;;;;:46;;;;9470:20;;;;;;;:29;;9493:6;;9470:29;:::i;:::-;-1:-1:-1;;;;;9447:20:0;;;;;;;:9;:20;;;;;;;:52;;;;9544:35;;;;;;-1:-1:-1;;;;;;;;;;;9544:35:0;;;9572:6;713:25:1;;701:2;686:18;;567:177;9544:35:0;;;;;;;;-1:-1:-1;9597:4:0;8751:858;;;;;:::o;14517:196::-;-1:-1:-1;;;;;14606:19:0;;;;;;:9;:19;;;;;;:28;;14628:6;;14606:28;:::i;:::-;-1:-1:-1;;;;;14584:19:0;;;;;;:9;:19;;;;;;:50;;;;14690:4;14672:24;;;;:33;;14699:6;;14672:33;:::i;:::-;14663:4;14645:24;;;;:9;:24;;;;;:60;-1:-1:-1;;14517:196:0:o;10613:380::-;-1:-1:-1;;;;;10749:19:0;;10741:68;;;;-1:-1:-1;;;10741:68:0;;18085:2:1;10741:68:0;;;18067:21:1;18124:2;18104:18;;;18097:30;18163:34;18143:18;;;18136:62;-1:-1:-1;;;18214:18:1;;;18207:34;18258:19;;10741:68:0;17883:400:1;10741:68:0;-1:-1:-1;;;;;10828:21:0;;10820:68;;;;-1:-1:-1;;;10820:68:0;;18490:2:1;10820:68:0;;;18472:21:1;18529:2;18509:18;;;18502:30;18568:34;18548:18;;;18541:62;-1:-1:-1;;;18619:18:1;;;18612:32;18661:19;;10820:68:0;18288:398:1;10820:68:0;-1:-1:-1;;;;;10901:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10953:32;;713:25:1;;;10953:32:0;;686:18:1;10953:32:0;;;;;;;10613:380;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:186::-;1437:6;1490:2;1478:9;1469:7;1465:23;1461:32;1458:52;;;1506:1;1503;1496:12;1458:52;1529:29;1548:9;1529:29;:::i;1569:260::-;1637:6;1645;1698:2;1686:9;1677:7;1673:23;1669:32;1666:52;;;1714:1;1711;1704:12;1666:52;1737:29;1756:9;1737:29;:::i;:::-;1727:39;;1785:38;1819:2;1808:9;1804:18;1785:38;:::i;:::-;1775:48;;1569:260;;;;;:::o;1834:248::-;1902:6;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;-1:-1:-1;;2002:23:1;;;2072:2;2057:18;;;2044:32;;-1:-1:-1;1834:248:1:o;2087:328::-;2164:6;2172;2180;2233:2;2221:9;2212:7;2208:23;2204:32;2201:52;;;2249:1;2246;2239:12;2201:52;2272:29;2291:9;2272:29;:::i;:::-;2262:39;;2320:38;2354:2;2343:9;2339:18;2320:38;:::i;:::-;2310:48;;2405:2;2394:9;2390:18;2377:32;2367:42;;2087:328;;;;;:::o;2817:180::-;2876:6;2929:2;2917:9;2908:7;2904:23;2900:32;2897:52;;;2945:1;2942;2935:12;2897:52;-1:-1:-1;2968:23:1;;2817:180;-1:-1:-1;2817:180:1:o;3002:118::-;3088:5;3081:13;3074:21;3067:5;3064:32;3054:60;;3110:1;3107;3100:12;3054:60;3002:118;:::o;3125:315::-;3190:6;3198;3251:2;3239:9;3230:7;3226:23;3222:32;3219:52;;;3267:1;3264;3257:12;3219:52;3290:29;3309:9;3290:29;:::i;:::-;3280:39;;3369:2;3358:9;3354:18;3341:32;3382:28;3404:5;3382:28;:::i;:::-;3429:5;3419:15;;;3125:315;;;;;:::o;3913:316::-;3990:6;3998;4006;4059:2;4047:9;4038:7;4034:23;4030:32;4027:52;;;4075:1;4072;4065:12;4027:52;-1:-1:-1;;4098:23:1;;;4168:2;4153:18;;4140:32;;-1:-1:-1;4219:2:1;4204:18;;;4191:32;;3913:316;-1:-1:-1;3913:316:1:o;5042:127::-;5103:10;5098:3;5094:20;5091:1;5084:31;5134:4;5131:1;5124:15;5158:4;5155:1;5148:15;5174:422;5263:1;5306:5;5263:1;5320:270;5341:7;5331:8;5328:21;5320:270;;;5400:4;5396:1;5392:6;5388:17;5382:4;5379:27;5376:53;;;5409:18;;:::i;:::-;5459:7;5449:8;5445:22;5442:55;;;5479:16;;;;5442:55;5558:22;;;;5518:15;;;;5320:270;;;5324:3;5174:422;;;;;:::o;5601:806::-;5650:5;5680:8;5670:80;;-1:-1:-1;5721:1:1;5735:5;;5670:80;5769:4;5759:76;;-1:-1:-1;5806:1:1;5820:5;;5759:76;5851:4;5869:1;5864:59;;;;5937:1;5932:130;;;;5844:218;;5864:59;5894:1;5885:10;;5908:5;;;5932:130;5969:3;5959:8;5956:17;5953:43;;;5976:18;;:::i;:::-;-1:-1:-1;;6032:1:1;6018:16;;6047:5;;5844:218;;6146:2;6136:8;6133:16;6127:3;6121:4;6118:13;6114:36;6108:2;6098:8;6095:16;6090:2;6084:4;6081:12;6077:35;6074:77;6071:159;;;-1:-1:-1;6183:19:1;;;6215:5;;6071:159;6262:34;6287:8;6281:4;6262:34;:::i;:::-;6332:6;6328:1;6324:6;6320:19;6311:7;6308:32;6305:58;;;6343:18;;:::i;:::-;6381:20;;5601:806;-1:-1:-1;;;5601:806:1:o;6412:140::-;6470:5;6499:47;6540:4;6530:8;6526:19;6520:4;6499:47;:::i;6557:168::-;6630:9;;;6661;;6678:15;;;6672:22;;6658:37;6648:71;;6699:18;;:::i;6730:355::-;6932:2;6914:21;;;6971:2;6951:18;;;6944:30;7010:33;7005:2;6990:18;;6983:61;7076:2;7061:18;;6730:355::o;7090:356::-;7292:2;7274:21;;;7311:18;;;7304:30;7370:34;7365:2;7350:18;;7343:62;7437:2;7422:18;;7090:356::o;7451:217::-;7491:1;7517;7507:132;;7561:10;7556:3;7552:20;7549:1;7542:31;7596:4;7593:1;7586:15;7624:4;7621:1;7614:15;7507:132;-1:-1:-1;7653:9:1;;7451:217::o;7952:245::-;8019:6;8072:2;8060:9;8051:7;8047:23;8043:32;8040:52;;;8088:1;8085;8078:12;8040:52;8120:9;8114:16;8139:28;8161:5;8139:28;:::i;8202:127::-;8263:10;8258:3;8254:20;8251:1;8244:31;8294:4;8291:1;8284:15;8318:4;8315:1;8308:15;9342:128;9409:9;;;9430:11;;;9427:37;;;9444:18;;:::i;10180:125::-;10245:9;;;10266:10;;;10263:36;;;10279:18;;:::i;10733:184::-;10803:6;10856:2;10844:9;10835:7;10831:23;10827:32;10824:52;;;10872:1;10869;10862:12;10824:52;-1:-1:-1;10895:16:1;;10733:184;-1:-1:-1;10733:184:1:o
Swarm Source
ipfs://5e09324b6bb144fef97d45435eece5625d5d1e15766a570433df3c5582cdfc3c
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.