Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
420,690,000,000 DOGO
Holders
22
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
DOGO
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-05-12
*/
// SPDX-License-Identifier: MIT
/*
http://dogo-token.xyz/
https://t.me/dogoerc_portal
https://x.com/dogotokenerc
*/
pragma solidity 0.8.30;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
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 createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
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);
}
contract DOGO 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=22;
uint256 private _initialSellTax=22;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=20;
uint256 private _reduceSellTaxAt=20;
uint256 private _preventSwapBefore=20;
uint256 private _transferTax=0;
uint256 private _buyCount=0;
uint8 private constant _decimals = 9;
uint256 private constant _tTotal = 420690000000 * 10**_decimals;
string private constant _name = unicode"DOGO";
string private constant _symbol = unicode"DOGO";
uint256 public _maxTxAmount = 2 * (_tTotal/100);
uint256 public _maxWalletSize = 2 * (_tTotal/100);
uint256 public _taxSwapThreshold = 2 * (_tTotal/1000);
uint256 public _maxTaxSwap = 2 * (_tTotal/100);
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTxAmountUpdated(uint _maxTxAmount);
event TransferTaxUpdated(uint _tax);
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}
constructor () {
_taxWallet = payable(0xa7487145da8D7eba05237e73DddeBD181EE34E72);
_balances[_msgSender()] = _tTotal;
_isExcludedFromFee[owner()] = true;
_isExcludedFromFee[address(this)] = true;
_isExcludedFromFee[_taxWallet] = true;
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 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 amount) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
uint256 taxAmount=0;
if (from != owner() && to != owner()) {
require(!bots[from] && !bots[to]);
if(_buyCount==0){
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
}
if(_buyCount>0){
taxAmount = amount.mul(_transferTax).div(100);
}
if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
_buyCount++;
}
if(to == uniswapV2Pair && from!= address(this) ){
taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 7, "Only 7 sells per block!");
swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(taxAmount>0){
_balances[address(this)]=_balances[address(this)].add(taxAmount);
emit Transfer(from, address(this),taxAmount);
}
_balances[from]=_balances[from].sub(amount);
_balances[to]=_balances[to].add(amount.sub(taxAmount));
emit Transfer(from, to, amount.sub(taxAmount));
}
function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}
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 removeTransferTax() external onlyOwner{
_transferTax = 0;
emit TransferTaxUpdated(0);
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function openTrading() external onlyOwner() {
require(!tradingOpen,"trading is already open");
uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(uniswapV2Router), _tTotal);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
swapEnabled = true;
tradingOpen = true;
}
receive() external payable {}
function manualSwap() external {
require(_msgSender()==_taxWallet);
uint256 tokenBalance=balanceOf(address(this));
if(tokenBalance>0){
swapTokensForEth(tokenBalance);
}
uint256 ethBalance=address(this).balance;
if(ethBalance>0){
sendETHToFee(ethBalance);
}
}
function manualsend() external {
require(_msgSender()==_taxWallet);
uint256 contractETHBalance = address(this).balance;
sendETHToFee(contractETHBalance);
}
}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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":"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":"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":"nonpayable","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":"removeTransferTax","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
6080604052601660065560166007555f6008555f6009556014600a556014600b556014600c555f600d555f600e5560646009600a61003d9190610625565b6461f313f88061004d919061066f565b61005791906106dd565b6002610063919061066f565b600f5560646009600a6100769190610625565b6461f313f880610086919061066f565b61009091906106dd565b600261009c919061066f565b6010556103e86009600a6100b09190610625565b6461f313f8806100c0919061066f565b6100ca91906106dd565b60026100d6919061066f565b60115560646009600a6100e99190610625565b6461f313f8806100f9919061066f565b61010391906106dd565b600261010f919061066f565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f601655348015610159575f5ffd5b505f61016961048660201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a7487145da8d7eba05237e73dddebd181ee34e7260055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102679190610625565b6461f313f880610277919061066f565b60015f61028861048660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102d861048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061040061048660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61045c9190610625565b6461f313f88061046c919061066f565b604051610479919061071c565b60405180910390a3610735565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561053657808604811115610512576105116104b4565b5b60018516156105215780820291505b808102905061052f856104e1565b94506104f6565b94509492505050565b5f8261054e5760019050610609565b8161055b575f9050610609565b8160018114610571576002811461057b576105aa565b6001915050610609565b60ff84111561058d5761058c6104b4565b5b8360020a9150848211156105a4576105a36104b4565b5b50610609565b5060208310610133831016604e8410600b84101617156105df5782820a9050838111156105da576105d96104b4565b5b610609565b6105ec84848460016104ed565b92509050818404811115610603576106026104b4565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61062f82610610565b915061063a83610619565b92506106677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461053f565b905092915050565b5f61067982610610565b915061068483610610565b925082820261069281610610565b915082820484148315176106a9576106a86104b4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106e782610610565b91506106f283610610565b925082610702576107016106b0565b5b828204905092915050565b61071681610610565b82525050565b5f60208201905061072f5f83018461070d565b92915050565b613044806107425f395ff3fe608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610375578063a9059cbb1461039f578063bf474bed146103db578063c9567bf914610405578063dd62ed3e1461041b57610129565b8063715018a6146102cb578063751039fc146102e15780637d1db4a5146102f75780638da5cb5b146103215780638f9a55c01461034b57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c85146102635780636fc3eaec1461027957806370a082311461028f57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f5ffd5b348015610138575f5ffd5b50610141610457565b60405161014e9190612169565b60405180910390f35b348015610162575f5ffd5b5061017d6004803603810190610178919061221a565b610494565b60405161018a9190612272565b60405180910390f35b34801561019e575f5ffd5b506101a76104b1565b6040516101b4919061229a565b60405180910390f35b3480156101c8575f5ffd5b506101d16104b7565b005b3480156101de575f5ffd5b506101e761058c565b6040516101f4919061229a565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e91906122b3565b6105b0565b6040516102309190612272565b60405180910390f35b348015610244575f5ffd5b5061024d610684565b60405161025a919061231e565b60405180910390f35b34801561026e575f5ffd5b5061027761068c565b005b348015610284575f5ffd5b5061028d610723565b005b34801561029a575f5ffd5b506102b560048036038101906102b09190612337565b610792565b6040516102c2919061229a565b60405180910390f35b3480156102d6575f5ffd5b506102df6107d8565b005b3480156102ec575f5ffd5b506102f5610928565b005b348015610302575f5ffd5b5061030b610a5b565b604051610318919061229a565b60405180910390f35b34801561032c575f5ffd5b50610335610a61565b6040516103429190612371565b60405180910390f35b348015610356575f5ffd5b5061035f610a88565b60405161036c919061229a565b60405180910390f35b348015610380575f5ffd5b50610389610a8e565b6040516103969190612169565b60405180910390f35b3480156103aa575f5ffd5b506103c560048036038101906103c0919061221a565b610acb565b6040516103d29190612272565b60405180910390f35b3480156103e6575f5ffd5b506103ef610ae8565b6040516103fc919061229a565b60405180910390f35b348015610410575f5ffd5b50610419610aee565b005b348015610426575f5ffd5b50610441600480360381019061043c919061238a565b61100f565b60405161044e919061229a565b60405180910390f35b60606040518060400160405280600481526020017f444f474f00000000000000000000000000000000000000000000000000000000815250905090565b5f6104a76104a0611091565b8484611098565b6001905092915050565b60125481565b6104bf611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054390612412565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105829190612472565b60405180910390a1565b5f6009600a61059b91906125e7565b6461f313f8806105ab9190612631565b905090565b5f6105bc84848461125b565b610679846105c8611091565b61067485604051806060016040528060288152602001612fe76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062b611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be59092919063ffffffff16565b611098565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cc611091565b73ffffffffffffffffffffffffffffffffffffffff16146106eb575f5ffd5b5f6106f530610792565b90505f8111156107095761070881611c47565b5b5f4790505f81111561071f5761071e81611eb2565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610763611091565b73ffffffffffffffffffffffffffffffffffffffff1614610782575f5ffd5b5f47905061078f81611eb2565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e0611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490612412565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610930611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490612412565b60405180910390fd5b6009600a6109cb91906125e7565b6461f313f8806109db9190612631565b600f819055506009600a6109ef91906125e7565b6461f313f8806109ff9190612631565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3491906125e7565b6461f313f880610a449190612631565b604051610a51919061229a565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f444f474f00000000000000000000000000000000000000000000000000000000815250905090565b5f610ade610ad7611091565b848461125b565b6001905092915050565b60115481565b610af6611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612412565b60405180910390fd5b60148054906101000a900460ff1615610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906126bc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c5991906125e7565b6461f313f880610c699190612631565b611098565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfc91906126ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da691906126ee565b6040518363ffffffff1660e01b8152600401610dc3929190612719565b6020604051808303815f875af1158015610ddf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0391906126ee565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8a30610792565b5f5f610e94610a61565b426040518863ffffffff1660e01b8152600401610eb696959493929190612740565b60606040518083038185885af1158015610ed2573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef791906127b3565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f97929190612803565b6020604051808303815f875af1158015610fb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd79190612854565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd906128ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b9061297d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124e919061229a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090612a0b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612a99565b60405180910390fd5b5f8111611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090612b27565b60405180910390fd5b5f5f9050611385610a61565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113f357506113c3610a61565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119355760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611496575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61149e575f5ffd5b5f600e54036114e6576114e360646114d5600a54600e54116114c2576006546114c6565b6008545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b5f600e54111561151b57611518606461150a600d5485611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115c4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611617575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170f57600f54821115611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612b8f565b60405180910390fd5b6010548261166e85610792565b6116789190612bad565b11156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612c2a565b60405180910390fd5b6116f560646116e7600a54600e54116116d4576006546116d8565b6008545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b9050600e5f81548092919061170990612c48565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117db576117d860646117ca600b54600e54116117b7576007546117bb565b6009545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b5f6117e530610792565b9050601460159054906101000a900460ff16158015611850575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118685750601460169054906101000a900460ff165b8015611875575060115481115b80156118845750600c54600e54115b156119335760165443111561189b575f6015819055505b6007601554106118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612cd9565b60405180910390fd5b6118fd6118f8846118f384601254611fda565b611fda565b611c47565b5f4790505f8111156119135761191247611eb2565b5b60155f81548092919061192590612c48565b919050555043601681905550505b505b5f811115611a345761198d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a2b919061229a565b60405180910390a35b611a848260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461204f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b27611adb828461204f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bca848661204f90919063ffffffff16565b604051611bd7919061229a565b60405180910390a350505050565b5f838311158290611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c239190612169565b60405180910390fd5b505f8385611c3a9190612cf7565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c7e57611c7d612d2a565b5b604051908082528060200260200182016040528015611cac5781602001602082028036833780820191505090505b50905030815f81518110611cc357611cc2612d57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d8b91906126ee565b81600181518110611d9f57611d9e612d57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e053060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611098565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e67959493929190612e3b565b5f604051808303815f87803b158015611e7e575f5ffd5b505af1158015611e90573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f16573d5f5f3e3d5ffd5b5050565b5f5f8303611f2a575f9050611f8b565b5f8284611f379190612631565b9050828482611f469190612ec0565b14611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90612f60565b60405180910390fd5b809150505b92915050565b5f611fd283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612098565b905092915050565b5f818311611fe85782611fea565b815b905092915050565b5f5f82846120009190612bad565b905083811015612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c90612fc8565b60405180910390fd5b8091505092915050565b5f61209083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be5565b905092915050565b5f5f831182906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612169565b60405180910390fd5b505f83856120ec9190612ec0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61213b826120f9565b6121458185612103565b9350612155818560208601612113565b61215e81612121565b840191505092915050565b5f6020820190508181035f8301526121818184612131565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121b68261218d565b9050919050565b6121c6816121ac565b81146121d0575f5ffd5b50565b5f813590506121e1816121bd565b92915050565b5f819050919050565b6121f9816121e7565b8114612203575f5ffd5b50565b5f81359050612214816121f0565b92915050565b5f5f604083850312156122305761222f612189565b5b5f61223d858286016121d3565b925050602061224e85828601612206565b9150509250929050565b5f8115159050919050565b61226c81612258565b82525050565b5f6020820190506122855f830184612263565b92915050565b612294816121e7565b82525050565b5f6020820190506122ad5f83018461228b565b92915050565b5f5f5f606084860312156122ca576122c9612189565b5b5f6122d7868287016121d3565b93505060206122e8868287016121d3565b92505060406122f986828701612206565b9150509250925092565b5f60ff82169050919050565b61231881612303565b82525050565b5f6020820190506123315f83018461230f565b92915050565b5f6020828403121561234c5761234b612189565b5b5f612359848285016121d3565b91505092915050565b61236b816121ac565b82525050565b5f6020820190506123845f830184612362565b92915050565b5f5f604083850312156123a05761239f612189565b5b5f6123ad858286016121d3565b92505060206123be858286016121d3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123fc602083612103565b9150612407826123c8565b602082019050919050565b5f6020820190508181035f830152612429816123f0565b9050919050565b5f819050919050565b5f819050919050565b5f61245c61245761245284612430565b612439565b6121e7565b9050919050565b61246c81612442565b82525050565b5f6020820190506124855f830184612463565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561250d578086048111156124e9576124e861248b565b5b60018516156124f85780820291505b8081029050612506856124b8565b94506124cd565b94509492505050565b5f8261252557600190506125e0565b81612532575f90506125e0565b8160018114612548576002811461255257612581565b60019150506125e0565b60ff8411156125645761256361248b565b5b8360020a91508482111561257b5761257a61248b565b5b506125e0565b5060208310610133831016604e8410600b84101617156125b65782820a9050838111156125b1576125b061248b565b5b6125e0565b6125c384848460016124c4565b925090508184048111156125da576125d961248b565b5b81810290505b9392505050565b5f6125f1826121e7565b91506125fc83612303565b92506126297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612516565b905092915050565b5f61263b826121e7565b9150612646836121e7565b9250828202612654816121e7565b9150828204841483151761266b5761266a61248b565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126a6601783612103565b91506126b182612672565b602082019050919050565b5f6020820190508181035f8301526126d38161269a565b9050919050565b5f815190506126e8816121bd565b92915050565b5f6020828403121561270357612702612189565b5b5f612710848285016126da565b91505092915050565b5f60408201905061272c5f830185612362565b6127396020830184612362565b9392505050565b5f60c0820190506127535f830189612362565b612760602083018861228b565b61276d6040830187612463565b61277a6060830186612463565b6127876080830185612362565b61279460a083018461228b565b979650505050505050565b5f815190506127ad816121f0565b92915050565b5f5f5f606084860312156127ca576127c9612189565b5b5f6127d78682870161279f565b93505060206127e88682870161279f565b92505060406127f98682870161279f565b9150509250925092565b5f6040820190506128165f830185612362565b612823602083018461228b565b9392505050565b61283381612258565b811461283d575f5ffd5b50565b5f8151905061284e8161282a565b92915050565b5f6020828403121561286957612868612189565b5b5f61287684828501612840565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128d9602483612103565b91506128e48261287f565b604082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612967602283612103565b91506129728261290d565b604082019050919050565b5f6020820190508181035f8301526129948161295b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129f5602583612103565b9150612a008261299b565b604082019050919050565b5f6020820190508181035f830152612a22816129e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a83602383612103565b9150612a8e82612a29565b604082019050919050565b5f6020820190508181035f830152612ab081612a77565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b11602983612103565b9150612b1c82612ab7565b604082019050919050565b5f6020820190508181035f830152612b3e81612b05565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b79601983612103565b9150612b8482612b45565b602082019050919050565b5f6020820190508181035f830152612ba681612b6d565b9050919050565b5f612bb7826121e7565b9150612bc2836121e7565b9250828201905080821115612bda57612bd961248b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c14601a83612103565b9150612c1f82612be0565b602082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b5f612c52826121e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8457612c8361248b565b5b600182019050919050565b7f4f6e6c7920372073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cc3601783612103565b9150612cce82612c8f565b602082019050919050565b5f6020820190508181035f830152612cf081612cb7565b9050919050565b5f612d01826121e7565b9150612d0c836121e7565b9250828203905081811115612d2457612d2361248b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612db6816121ac565b82525050565b5f612dc78383612dad565b60208301905092915050565b5f602082019050919050565b5f612de982612d84565b612df38185612d8e565b9350612dfe83612d9e565b805f5b83811015612e2e578151612e158882612dbc565b9750612e2083612dd3565b925050600181019050612e01565b5085935050505092915050565b5f60a082019050612e4e5f83018861228b565b612e5b6020830187612463565b8181036040830152612e6d8186612ddf565b9050612e7c6060830185612362565b612e89608083018461228b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eca826121e7565b9150612ed5836121e7565b925082612ee557612ee4612e93565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4a602183612103565b9150612f5582612ef0565b604082019050919050565b5f6020820190508181035f830152612f7781612f3e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fb2601b83612103565b9150612fbd82612f7e565b602082019050919050565b5f6020820190508181035f830152612fdf81612fa6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003e6a2ed30014b9478683f47e2cbc52c2fd046952b7397c8014d9982ba6a70c764736f6c634300081e0033
Deployed Bytecode
0x608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610375578063a9059cbb1461039f578063bf474bed146103db578063c9567bf914610405578063dd62ed3e1461041b57610129565b8063715018a6146102cb578063751039fc146102e15780637d1db4a5146102f75780638da5cb5b146103215780638f9a55c01461034b57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce5671461023957806351bc3c85146102635780636fc3eaec1461027957806370a082311461028f57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f5ffd5b348015610138575f5ffd5b50610141610457565b60405161014e9190612169565b60405180910390f35b348015610162575f5ffd5b5061017d6004803603810190610178919061221a565b610494565b60405161018a9190612272565b60405180910390f35b34801561019e575f5ffd5b506101a76104b1565b6040516101b4919061229a565b60405180910390f35b3480156101c8575f5ffd5b506101d16104b7565b005b3480156101de575f5ffd5b506101e761058c565b6040516101f4919061229a565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e91906122b3565b6105b0565b6040516102309190612272565b60405180910390f35b348015610244575f5ffd5b5061024d610684565b60405161025a919061231e565b60405180910390f35b34801561026e575f5ffd5b5061027761068c565b005b348015610284575f5ffd5b5061028d610723565b005b34801561029a575f5ffd5b506102b560048036038101906102b09190612337565b610792565b6040516102c2919061229a565b60405180910390f35b3480156102d6575f5ffd5b506102df6107d8565b005b3480156102ec575f5ffd5b506102f5610928565b005b348015610302575f5ffd5b5061030b610a5b565b604051610318919061229a565b60405180910390f35b34801561032c575f5ffd5b50610335610a61565b6040516103429190612371565b60405180910390f35b348015610356575f5ffd5b5061035f610a88565b60405161036c919061229a565b60405180910390f35b348015610380575f5ffd5b50610389610a8e565b6040516103969190612169565b60405180910390f35b3480156103aa575f5ffd5b506103c560048036038101906103c0919061221a565b610acb565b6040516103d29190612272565b60405180910390f35b3480156103e6575f5ffd5b506103ef610ae8565b6040516103fc919061229a565b60405180910390f35b348015610410575f5ffd5b50610419610aee565b005b348015610426575f5ffd5b50610441600480360381019061043c919061238a565b61100f565b60405161044e919061229a565b60405180910390f35b60606040518060400160405280600481526020017f444f474f00000000000000000000000000000000000000000000000000000000815250905090565b5f6104a76104a0611091565b8484611098565b6001905092915050565b60125481565b6104bf611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054390612412565b60405180910390fd5b5f600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105829190612472565b60405180910390a1565b5f6009600a61059b91906125e7565b6461f313f8806105ab9190612631565b905090565b5f6105bc84848461125b565b610679846105c8611091565b61067485604051806060016040528060288152602001612fe76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062b611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be59092919063ffffffff16565b611098565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cc611091565b73ffffffffffffffffffffffffffffffffffffffff16146106eb575f5ffd5b5f6106f530610792565b90505f8111156107095761070881611c47565b5b5f4790505f81111561071f5761071e81611eb2565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610763611091565b73ffffffffffffffffffffffffffffffffffffffff1614610782575f5ffd5b5f47905061078f81611eb2565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e0611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490612412565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610930611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490612412565b60405180910390fd5b6009600a6109cb91906125e7565b6461f313f8806109db9190612631565b600f819055506009600a6109ef91906125e7565b6461f313f8806109ff9190612631565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a3491906125e7565b6461f313f880610a449190612631565b604051610a51919061229a565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f444f474f00000000000000000000000000000000000000000000000000000000815250905090565b5f610ade610ad7611091565b848461125b565b6001905092915050565b60115481565b610af6611091565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612412565b60405180910390fd5b60148054906101000a900460ff1615610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906126bc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c5991906125e7565b6461f313f880610c699190612631565b611098565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfc91906126ee565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da691906126ee565b6040518363ffffffff1660e01b8152600401610dc3929190612719565b6020604051808303815f875af1158015610ddf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0391906126ee565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8a30610792565b5f5f610e94610a61565b426040518863ffffffff1660e01b8152600401610eb696959493929190612740565b60606040518083038185885af1158015610ed2573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef791906127b3565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f97929190612803565b6020604051808303815f875af1158015610fb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd79190612854565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd906128ef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b9061297d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124e919061229a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090612a0b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612a99565b60405180910390fd5b5f8111611379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137090612b27565b60405180910390fd5b5f5f9050611385610a61565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113f357506113c3610a61565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119355760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611496575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61149e575f5ffd5b5f600e54036114e6576114e360646114d5600a54600e54116114c2576006546114c6565b6008545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b5f600e54111561151b57611518606461150a600d5485611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115c4575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611617575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170f57600f54821115611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612b8f565b60405180910390fd5b6010548261166e85610792565b6116789190612bad565b11156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612c2a565b60405180910390fd5b6116f560646116e7600a54600e54116116d4576006546116d8565b6008545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b9050600e5f81548092919061170990612c48565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561179757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117db576117d860646117ca600b54600e54116117b7576007546117bb565b6009545b85611f1a90919063ffffffff16565b611f9190919063ffffffff16565b90505b5f6117e530610792565b9050601460159054906101000a900460ff16158015611850575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118685750601460169054906101000a900460ff165b8015611875575060115481115b80156118845750600c54600e54115b156119335760165443111561189b575f6015819055505b6007601554106118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612cd9565b60405180910390fd5b6118fd6118f8846118f384601254611fda565b611fda565b611c47565b5f4790505f8111156119135761191247611eb2565b5b60155f81548092919061192590612c48565b919050555043601681905550505b505b5f811115611a345761198d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff290919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a2b919061229a565b60405180910390a35b611a848260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461204f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b27611adb828461204f90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff290919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bca848661204f90919063ffffffff16565b604051611bd7919061229a565b60405180910390a350505050565b5f838311158290611c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c239190612169565b60405180910390fd5b505f8385611c3a9190612cf7565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c7e57611c7d612d2a565b5b604051908082528060200260200182016040528015611cac5781602001602082028036833780820191505090505b50905030815f81518110611cc357611cc2612d57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d67573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d8b91906126ee565b81600181518110611d9f57611d9e612d57565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e053060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611098565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e67959493929190612e3b565b5f604051808303815f87803b158015611e7e575f5ffd5b505af1158015611e90573d5f5f3e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f16573d5f5f3e3d5ffd5b5050565b5f5f8303611f2a575f9050611f8b565b5f8284611f379190612631565b9050828482611f469190612ec0565b14611f86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7d90612f60565b60405180910390fd5b809150505b92915050565b5f611fd283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612098565b905092915050565b5f818311611fe85782611fea565b815b905092915050565b5f5f82846120009190612bad565b905083811015612045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203c90612fc8565b60405180910390fd5b8091505092915050565b5f61209083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be5565b905092915050565b5f5f831182906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612169565b60405180910390fd5b505f83856120ec9190612ec0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61213b826120f9565b6121458185612103565b9350612155818560208601612113565b61215e81612121565b840191505092915050565b5f6020820190508181035f8301526121818184612131565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121b68261218d565b9050919050565b6121c6816121ac565b81146121d0575f5ffd5b50565b5f813590506121e1816121bd565b92915050565b5f819050919050565b6121f9816121e7565b8114612203575f5ffd5b50565b5f81359050612214816121f0565b92915050565b5f5f604083850312156122305761222f612189565b5b5f61223d858286016121d3565b925050602061224e85828601612206565b9150509250929050565b5f8115159050919050565b61226c81612258565b82525050565b5f6020820190506122855f830184612263565b92915050565b612294816121e7565b82525050565b5f6020820190506122ad5f83018461228b565b92915050565b5f5f5f606084860312156122ca576122c9612189565b5b5f6122d7868287016121d3565b93505060206122e8868287016121d3565b92505060406122f986828701612206565b9150509250925092565b5f60ff82169050919050565b61231881612303565b82525050565b5f6020820190506123315f83018461230f565b92915050565b5f6020828403121561234c5761234b612189565b5b5f612359848285016121d3565b91505092915050565b61236b816121ac565b82525050565b5f6020820190506123845f830184612362565b92915050565b5f5f604083850312156123a05761239f612189565b5b5f6123ad858286016121d3565b92505060206123be858286016121d3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123fc602083612103565b9150612407826123c8565b602082019050919050565b5f6020820190508181035f830152612429816123f0565b9050919050565b5f819050919050565b5f819050919050565b5f61245c61245761245284612430565b612439565b6121e7565b9050919050565b61246c81612442565b82525050565b5f6020820190506124855f830184612463565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b600185111561250d578086048111156124e9576124e861248b565b5b60018516156124f85780820291505b8081029050612506856124b8565b94506124cd565b94509492505050565b5f8261252557600190506125e0565b81612532575f90506125e0565b8160018114612548576002811461255257612581565b60019150506125e0565b60ff8411156125645761256361248b565b5b8360020a91508482111561257b5761257a61248b565b5b506125e0565b5060208310610133831016604e8410600b84101617156125b65782820a9050838111156125b1576125b061248b565b5b6125e0565b6125c384848460016124c4565b925090508184048111156125da576125d961248b565b5b81810290505b9392505050565b5f6125f1826121e7565b91506125fc83612303565b92506126297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612516565b905092915050565b5f61263b826121e7565b9150612646836121e7565b9250828202612654816121e7565b9150828204841483151761266b5761266a61248b565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126a6601783612103565b91506126b182612672565b602082019050919050565b5f6020820190508181035f8301526126d38161269a565b9050919050565b5f815190506126e8816121bd565b92915050565b5f6020828403121561270357612702612189565b5b5f612710848285016126da565b91505092915050565b5f60408201905061272c5f830185612362565b6127396020830184612362565b9392505050565b5f60c0820190506127535f830189612362565b612760602083018861228b565b61276d6040830187612463565b61277a6060830186612463565b6127876080830185612362565b61279460a083018461228b565b979650505050505050565b5f815190506127ad816121f0565b92915050565b5f5f5f606084860312156127ca576127c9612189565b5b5f6127d78682870161279f565b93505060206127e88682870161279f565b92505060406127f98682870161279f565b9150509250925092565b5f6040820190506128165f830185612362565b612823602083018461228b565b9392505050565b61283381612258565b811461283d575f5ffd5b50565b5f8151905061284e8161282a565b92915050565b5f6020828403121561286957612868612189565b5b5f61287684828501612840565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128d9602483612103565b91506128e48261287f565b604082019050919050565b5f6020820190508181035f830152612906816128cd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612967602283612103565b91506129728261290d565b604082019050919050565b5f6020820190508181035f8301526129948161295b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129f5602583612103565b9150612a008261299b565b604082019050919050565b5f6020820190508181035f830152612a22816129e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a83602383612103565b9150612a8e82612a29565b604082019050919050565b5f6020820190508181035f830152612ab081612a77565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b11602983612103565b9150612b1c82612ab7565b604082019050919050565b5f6020820190508181035f830152612b3e81612b05565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b79601983612103565b9150612b8482612b45565b602082019050919050565b5f6020820190508181035f830152612ba681612b6d565b9050919050565b5f612bb7826121e7565b9150612bc2836121e7565b9250828201905080821115612bda57612bd961248b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c14601a83612103565b9150612c1f82612be0565b602082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b5f612c52826121e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8457612c8361248b565b5b600182019050919050565b7f4f6e6c7920372073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cc3601783612103565b9150612cce82612c8f565b602082019050919050565b5f6020820190508181035f830152612cf081612cb7565b9050919050565b5f612d01826121e7565b9150612d0c836121e7565b9250828203905081811115612d2457612d2361248b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612db6816121ac565b82525050565b5f612dc78383612dad565b60208301905092915050565b5f602082019050919050565b5f612de982612d84565b612df38185612d8e565b9350612dfe83612d9e565b805f5b83811015612e2e578151612e158882612dbc565b9750612e2083612dd3565b925050600181019050612e01565b5085935050505092915050565b5f60a082019050612e4e5f83018861228b565b612e5b6020830187612463565b8181036040830152612e6d8186612ddf565b9050612e7c6060830185612362565b612e89608083018461228b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eca826121e7565b9150612ed5836121e7565b925082612ee557612ee4612e93565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4a602183612103565b9150612f5582612ef0565b604082019050919050565b5f6020820190508181035f830152612f7781612f3e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fb2601b83612103565b9150612fbd82612f7e565b602082019050919050565b5f6020820190508181035f830152612fdf81612fa6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003e6a2ed30014b9478683f47e2cbc52c2fd046952b7397c8014d9982ba6a70c764736f6c634300081e0033
Deployed Bytecode Sourcemap
3574:8352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6382:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4680:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10437:119;;;;;;;;;;;;;:::i;:::-;;5826:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5735:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11380:348;;;;;;;;;;;;;:::i;:::-;;11736:187;;;;;;;;;;;;;:::i;:::-;;5929:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2655:148;;;;;;;;;;;;;:::i;:::-;;10270:159;;;;;;;;;;;;;:::i;:::-;;4507:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2441:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4562:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6056:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4619:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10664:671;;;;;;;;;;;;;:::i;:::-;;6231:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:83;5586:13;5619:5;;;;;;;;;;;;;;;;;5612:12;;5549:83;:::o;6382:161::-;6457:4;6474:39;6483:12;:10;:12::i;:::-;6497:7;6506:6;6474:8;:39::i;:::-;6531:4;6524:11;;6382:161;;;;:::o;4680:46::-;;;;:::o;10437:119::-;2578:12;:10;:12::i;:::-;2568:22;;:6;;;;;;;;;;;:22;;;2560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10510:1:::1;10495:12;:16;;;;10527:21;10546:1;10527:21;;;;;;:::i;:::-;;;;;;;;10437:119::o:0;5826:95::-;5879:7;4323:1;4381:2;:13;;;;:::i;:::-;4366:12;:28;;;;:::i;:::-;5899:14;;5826:95;:::o;6551:313::-;6649:4;6666:36;6676:6;6684:9;6695:6;6666:9;:36::i;:::-;6713:121;6722:6;6730:12;:10;:12::i;:::-;6744:89;6782:6;6744:89;;;;;;;;;;;;;;;;;:11;:19;6756:6;6744:19;;;;;;;;;;;;;;;:33;6764:12;:10;:12::i;:::-;6744:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6713:8;:121::i;:::-;6852:4;6845:11;;6551:313;;;;;:::o;5735:83::-;5776:5;4323:1;5794:16;;5735:83;:::o;11380:348::-;11444:10;;;;;;;;;;;11430:24;;:12;:10;:12::i;:::-;:24;;;11422:33;;;;;;11466:20;11487:24;11505:4;11487:9;:24::i;:::-;11466:45;;11538:1;11525:12;:14;11522:73;;;11553:30;11570:12;11553:16;:30::i;:::-;11522:73;11605:18;11624:21;11605:40;;11670:1;11659:10;:12;11656:65;;;11685:24;11698:10;11685:12;:24::i;:::-;11656:65;11411:317;;11380:348::o;11736:187::-;11800:10;;;;;;;;;;;11786:24;;:12;:10;:12::i;:::-;:24;;;11778:33;;;;;;11822:26;11851:21;11822:50;;11883:32;11896:18;11883:12;:32::i;:::-;11767:156;11736:187::o;5929:119::-;5995:7;6022:9;:18;6032:7;6022:18;;;;;;;;;;;;;;;;6015:25;;5929:119;;;:::o;2655:148::-;2578:12;:10;:12::i;:::-;2568:22;;:6;;;;;;;;;;;:22;;;2560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2762:1:::1;2725:40;;2746:6;;;;;;;;;;;2725:40;;;;;;;;;;;;2793:1;2776:6;;:19;;;;;;;;;;;;;;;;;;2655:148::o:0;10270:159::-;2578:12;:10;:12::i;:::-;2568:22;;:6;;;;;;;;;;;:22;;;2560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4323:1:::1;4381:2;:13;;;;:::i;:::-;4366:12;:28;;;;:::i;:::-;10323:12;:22;;;;4323:1;4381:2;:13;;;;:::i;:::-;4366:12;:28;;;;:::i;:::-;10356:14;:22;;;;10394:27;4323:1;4381:2;:13;;;;:::i;:::-;4366:12;:28;;;;:::i;:::-;10394:27;;;;;;:::i;:::-;;;;;;;;10270:159::o:0;4507:48::-;;;;:::o;2441:79::-;2479:7;2506:6;;;;;;;;;;;2499:13;;2441:79;:::o;4562:50::-;;;;:::o;5640:87::-;5679:13;5712:7;;;;;;;;;;;;;;;;;5705:14;;5640:87;:::o;6056:167::-;6134:4;6151:42;6161:12;:10;:12::i;:::-;6175:9;6186:6;6151:9;:42::i;:::-;6211:4;6204:11;;6056:167;;;;:::o;4619:54::-;;;;:::o;10664:671::-;2578:12;:10;:12::i;:::-;2568:22;;:6;;;;;;;;;;;:22;;;2560:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10728:11:::1;::::0;::::1;;;;;;;;10727:12;10719:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10814:42;10777:15;;:80;;;;;;;;;;;;;;;;;;10868:58;10885:4;10900:15;;;;;;;;;;;4323:1;4381:2;:13;;;;:::i;:::-;4366:12;:28;;;;:::i;:::-;10868:8;:58::i;:::-;10971:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10953:55;;;11017:4;11024:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10953:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10937:13;;:110;;;;;;;;;;;;;;;;;;11058:15;;;;;;;;;;;:31;;;11097:21;11128:4;11134:24;11152:4;11134:9;:24::i;:::-;11159:1;11161;11163:7;:5;:7::i;:::-;11171:15;11058:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11205:13;;;;;;;;;;;11198:29;;;11236:15;;;;;;;;;;;11254:14;11198:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11294:4;11280:11;;:18;;;;;;;;;;;;;;;;;;11323:4;11309:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10664:671::o:0;6231:143::-;6312:7;6339:11;:18;6351:5;6339:18;;;;;;;;;;;;;;;:27;6358:7;6339:27;;;;;;;;;;;;;;;;6332:34;;6231:143;;;;:::o;196:98::-;249:7;276:10;269:17;;196:98;:::o;6872:335::-;6982:1;6965:19;;:5;:19;;;6957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7063:1;7044:21;;:7;:21;;;7036:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:6;7115:11;:18;7127:5;7115:18;;;;;;;;;;;;;;;:27;7134:7;7115:27;;;;;;;;;;;;;;;:36;;;;7183:7;7167:32;;7176:5;7167:32;;;7192:6;7167:32;;;;;;:::i;:::-;;;;;;;;6872:335;;;:::o;7215:2448::-;7319:1;7303:18;;:4;:18;;;7295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7396:1;7382:16;;:2;:16;;;7374:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7466:1;7457:6;:10;7449:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7524:17;7542:1;7524:19;;7566:7;:5;:7::i;:::-;7558:15;;:4;:15;;;;:32;;;;;7583:7;:5;:7::i;:::-;7577:13;;:2;:13;;;;7558:32;7554:1753;;;7616:4;:10;7621:4;7616:10;;;;;;;;;;;;;;;;;;;;;;;;;7615:11;:24;;;;;7631:4;:8;7636:2;7631:8;;;;;;;;;;;;;;;;;;;;;;;;;7630:9;7615:24;7607:33;;;;;;7671:1;7660:9;;:12;7657:139;;7704:76;7776:3;7704:67;7726:15;;7716:9;;:25;7715:55;;7756:14;;7715:55;;;7743:12;;7715:55;7704:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7692:88;;7657:139;7823:1;7813:9;;:11;7810:95;;;7856:33;7885:3;7856:24;7867:12;;7856:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7844:45;;7810:95;7933:13;;;;;;;;;;;7925:21;;:4;:21;;;:55;;;;;7964:15;;;;;;;;;;;7950:30;;:2;:30;;;;7925:55;:83;;;;;7986:18;:22;8005:2;7986:22;;;;;;;;;;;;;;;;;;;;;;;;;7984:24;7925:83;7921:420;;;8048:12;;8038:6;:22;;8030:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8143:14;;8133:6;8117:13;8127:2;8117:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8109:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8219:76;8291:3;8219:67;8241:15;;8231:9;;:25;8230:55;;8271:14;;8230:55;;;8258:12;;8230:55;8219:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8207:88;;8314:9;;:11;;;;;;;;;:::i;:::-;;;;;;7921:420;8366:13;;;;;;;;;;;8360:19;;:2;:19;;;:43;;;;;8398:4;8383:20;;:4;:20;;;;8360:43;8357:174;;;8436:79;8511:3;8436:70;8458:16;;8448:9;;:26;8447:58;;8490:15;;8447:58;;;8476:13;;8447:58;8436:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8424:91;;8357:174;8547:28;8578:24;8596:4;8578:9;:24::i;:::-;8547:55;;8622:6;;;;;;;;;;;8621:7;:30;;;;;8638:13;;;;;;;;;;;8632:19;;:2;:19;;;8621:30;:45;;;;;8655:11;;;;;;;;;;;8621:45;:89;;;;;8693:17;;8670:20;:40;8621:89;:123;;;;;8726:18;;8714:9;;:30;8621:123;8617:679;;;8784:13;;8769:12;:28;8765:90;;;8834:1;8822:9;:13;;;;8765:90;8893:1;8881:9;;:13;8873:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8941:69;8958:51;8962:6;8970:38;8974:20;8996:11;;8970:3;:38::i;:::-;8958:3;:51::i;:::-;8941:16;:69::i;:::-;9029:26;9058:21;9029:50;;9123:1;9102:18;:22;9098:106;;;9149:35;9162:21;9149:12;:35::i;:::-;9098:106;9222:9;;:11;;;;;;;;;:::i;:::-;;;;;;9268:12;9252:13;:28;;;;8746:550;8617:679;7592:1715;7554:1753;9332:1;9322:9;:11;9319:161;;;9372:39;9401:9;9372;:24;9390:4;9372:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9347:9;:24;9365:4;9347:24;;;;;;;;;;;;;;;:64;;;;9452:4;9429:39;;9438:4;9429:39;;;9458:9;9429:39;;;;;;:::i;:::-;;;;;;;;9319:161;9506:27;9526:6;9506:9;:15;9516:4;9506:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9490:9;:15;9500:4;9490:15;;;;;;;;;;;;;;;:43;;;;9558:40;9576:21;9587:9;9576:6;:10;;:21;;;;:::i;:::-;9558:9;:13;9568:2;9558:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9544:9;:13;9554:2;9544:13;;;;;;;;;;;;;;;:54;;;;9629:2;9614:41;;9623:4;9614:41;;;9633:21;9644:9;9633:6;:10;;:21;;;;:::i;:::-;9614:41;;;;;;:::i;:::-;;;;;;;;7284:2379;7215:2448;;;:::o;1333:190::-;1419:7;1452:1;1447;:6;;1455:12;1439:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1479:9;1495:1;1491;:5;;;;:::i;:::-;1479:17;;1514:1;1507:8;;;1333:190;;;;;:::o;9779:483::-;5137:4;5128:6;;:13;;;;;;;;;;;;;;;;;;9857:21:::1;9895:1;9881:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9857:40;;9926:4;9908;9913:1;9908:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9952:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9942:4;9947:1;9942:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9985:62;10002:4;10017:15;;;;;;;;;;;10035:11;9985:8;:62::i;:::-;10058:15;;;;;;;;;;;:66;;;10139:11;10165:1;10181:4;10208;10228:15;10058:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9846:416;5173:5:::0;5164:6;;:14;;;;;;;;;;;;;;;;;;9779:483;:::o;10564:92::-;10621:10;;;;;;;;;;;:19;;:27;10641:6;10621:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10564:92;:::o;1531:246::-;1589:7;1618:1;1613;:6;1609:47;;1643:1;1636:8;;;;1609:47;1666:9;1682:1;1678;:5;;;;:::i;:::-;1666:17;;1711:1;1706;1702;:5;;;;:::i;:::-;:10;1694:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1768:1;1761:8;;;1531:246;;;;;:::o;1785:132::-;1843:7;1870:39;1874:1;1877;1870:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1863:46;;1785:132;;;;:::o;9673:98::-;9730:7;9757:1;9755;:3;9754:9;;9762:1;9754:9;;;9760:1;9754:9;9747:16;;9673:98;;;;:::o;1002:179::-;1060:7;1080:9;1096:1;1092;:5;;;;:::i;:::-;1080:17;;1121:1;1116;:6;;1108:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1172:1;1165:8;;;1002:179;;;;:::o;1189:136::-;1247:7;1274:43;1278:1;1281;1274:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1267:50;;1189:136;;;;:::o;1925:189::-;2011:7;2043:1;2039;:5;2046:12;2031:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2070:9;2086:1;2082;:5;;;;:::i;:::-;2070:17;;2105:1;2098:8;;;1925:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:182::-;6053:34;6049:1;6041:6;6037:14;6030:58;5913:182;:::o;6101:366::-;6243:3;6264:67;6328:2;6323:3;6264:67;:::i;:::-;6257:74;;6340:93;6429:3;6340:93;:::i;:::-;6458:2;6453:3;6449:12;6442:19;;6101:366;;;:::o;6473:419::-;6639:4;6677:2;6666:9;6662:18;6654:26;;6726:9;6720:4;6716:20;6712:1;6701:9;6697:17;6690:47;6754:131;6880:4;6754:131;:::i;:::-;6746:139;;6473:419;;;:::o;6898:85::-;6943:7;6972:5;6961:16;;6898:85;;;:::o;6989:60::-;7017:3;7038:5;7031:12;;6989:60;;;:::o;7055:158::-;7113:9;7146:61;7164:42;7173:32;7199:5;7173:32;:::i;:::-;7164:42;:::i;:::-;7146:61;:::i;:::-;7133:74;;7055:158;;;:::o;7219:147::-;7314:45;7353:5;7314:45;:::i;:::-;7309:3;7302:58;7219:147;;:::o;7372:238::-;7473:4;7511:2;7500:9;7496:18;7488:26;;7524:79;7600:1;7589:9;7585:17;7576:6;7524:79;:::i;:::-;7372:238;;;;:::o;7616:180::-;7664:77;7661:1;7654:88;7761:4;7758:1;7751:15;7785:4;7782:1;7775:15;7802:102;7844:8;7891:5;7888:1;7884:13;7863:34;;7802:102;;;:::o;7910:848::-;7971:5;7978:4;8002:6;7993:15;;8026:5;8017:14;;8040:712;8061:1;8051:8;8048:15;8040:712;;;8156:4;8151:3;8147:14;8141:4;8138:24;8135:50;;;8165:18;;:::i;:::-;8135:50;8215:1;8205:8;8201:16;8198:451;;;8630:4;8623:5;8619:16;8610:25;;8198:451;8680:4;8674;8670:15;8662:23;;8710:32;8733:8;8710:32;:::i;:::-;8698:44;;8040:712;;;7910:848;;;;;;;:::o;8764:1073::-;8818:5;9009:8;8999:40;;9030:1;9021:10;;9032:5;;8999:40;9058:4;9048:36;;9075:1;9066:10;;9077:5;;9048:36;9144:4;9192:1;9187:27;;;;9228:1;9223:191;;;;9137:277;;9187:27;9205:1;9196:10;;9207:5;;;9223:191;9268:3;9258:8;9255:17;9252:43;;;9275:18;;:::i;:::-;9252:43;9324:8;9321:1;9317:16;9308:25;;9359:3;9352:5;9349:14;9346:40;;;9366:18;;:::i;:::-;9346:40;9399:5;;;9137:277;;9523:2;9513:8;9510:16;9504:3;9498:4;9495:13;9491:36;9473:2;9463:8;9460:16;9455:2;9449:4;9446:12;9442:35;9426:111;9423:246;;;9579:8;9573:4;9569:19;9560:28;;9614:3;9607:5;9604:14;9601:40;;;9621:18;;:::i;:::-;9601:40;9654:5;;9423:246;9694:42;9732:3;9722:8;9716:4;9713:1;9694:42;:::i;:::-;9679:57;;;;9768:4;9763:3;9759:14;9752:5;9749:25;9746:51;;;9777:18;;:::i;:::-;9746:51;9826:4;9819:5;9815:16;9806:25;;8764:1073;;;;;;:::o;9843:281::-;9901:5;9925:23;9943:4;9925:23;:::i;:::-;9917:31;;9969:25;9985:8;9969:25;:::i;:::-;9957:37;;10013:104;10050:66;10040:8;10034:4;10013:104;:::i;:::-;10004:113;;9843:281;;;;:::o;10130:410::-;10170:7;10193:20;10211:1;10193:20;:::i;:::-;10188:25;;10227:20;10245:1;10227:20;:::i;:::-;10222:25;;10282:1;10279;10275:9;10304:30;10322:11;10304:30;:::i;:::-;10293:41;;10483:1;10474:7;10470:15;10467:1;10464:22;10444:1;10437:9;10417:83;10394:139;;10513:18;;:::i;:::-;10394:139;10178:362;10130:410;;;;:::o;10546:173::-;10686:25;10682:1;10674:6;10670:14;10663:49;10546:173;:::o;10725:366::-;10867:3;10888:67;10952:2;10947:3;10888:67;:::i;:::-;10881:74;;10964:93;11053:3;10964:93;:::i;:::-;11082:2;11077:3;11073:12;11066:19;;10725:366;;;:::o;11097:419::-;11263:4;11301:2;11290:9;11286:18;11278:26;;11350:9;11344:4;11340:20;11336:1;11325:9;11321:17;11314:47;11378:131;11504:4;11378:131;:::i;:::-;11370:139;;11097:419;;;:::o;11522:143::-;11579:5;11610:6;11604:13;11595:22;;11626:33;11653:5;11626:33;:::i;:::-;11522:143;;;;:::o;11671:351::-;11741:6;11790:2;11778:9;11769:7;11765:23;11761:32;11758:119;;;11796:79;;:::i;:::-;11758:119;11916:1;11941:64;11997:7;11988:6;11977:9;11973:22;11941:64;:::i;:::-;11931:74;;11887:128;11671:351;;;;:::o;12028:332::-;12149:4;12187:2;12176:9;12172:18;12164:26;;12200:71;12268:1;12257:9;12253:17;12244:6;12200:71;:::i;:::-;12281:72;12349:2;12338:9;12334:18;12325:6;12281:72;:::i;:::-;12028:332;;;;;:::o;12366:807::-;12615:4;12653:3;12642:9;12638:19;12630:27;;12667:71;12735:1;12724:9;12720:17;12711:6;12667:71;:::i;:::-;12748:72;12816:2;12805:9;12801:18;12792:6;12748:72;:::i;:::-;12830:80;12906:2;12895:9;12891:18;12882:6;12830:80;:::i;:::-;12920;12996:2;12985:9;12981:18;12972:6;12920:80;:::i;:::-;13010:73;13078:3;13067:9;13063:19;13054:6;13010:73;:::i;:::-;13093;13161:3;13150:9;13146:19;13137:6;13093:73;:::i;:::-;12366:807;;;;;;;;;:::o;13179:143::-;13236:5;13267:6;13261:13;13252:22;;13283:33;13310:5;13283:33;:::i;:::-;13179:143;;;;:::o;13328:663::-;13416:6;13424;13432;13481:2;13469:9;13460:7;13456:23;13452:32;13449:119;;;13487:79;;:::i;:::-;13449:119;13607:1;13632:64;13688:7;13679:6;13668:9;13664:22;13632:64;:::i;:::-;13622:74;;13578:128;13745:2;13771:64;13827:7;13818:6;13807:9;13803:22;13771:64;:::i;:::-;13761:74;;13716:129;13884:2;13910:64;13966:7;13957:6;13946:9;13942:22;13910:64;:::i;:::-;13900:74;;13855:129;13328:663;;;;;:::o;13997:332::-;14118:4;14156:2;14145:9;14141:18;14133:26;;14169:71;14237:1;14226:9;14222:17;14213:6;14169:71;:::i;:::-;14250:72;14318:2;14307:9;14303:18;14294:6;14250:72;:::i;:::-;13997:332;;;;;:::o;14335:116::-;14405:21;14420:5;14405:21;:::i;:::-;14398:5;14395:32;14385:60;;14441:1;14438;14431:12;14385:60;14335:116;:::o;14457:137::-;14511:5;14542:6;14536:13;14527:22;;14558:30;14582:5;14558:30;:::i;:::-;14457:137;;;;:::o;14600:345::-;14667:6;14716:2;14704:9;14695:7;14691:23;14687:32;14684:119;;;14722:79;;:::i;:::-;14684:119;14842:1;14867:61;14920:7;14911:6;14900:9;14896:22;14867:61;:::i;:::-;14857:71;;14813:125;14600:345;;;;:::o;14951:223::-;15091:34;15087:1;15079:6;15075:14;15068:58;15160:6;15155:2;15147:6;15143:15;15136:31;14951:223;:::o;15180:366::-;15322:3;15343:67;15407:2;15402:3;15343:67;:::i;:::-;15336:74;;15419:93;15508:3;15419:93;:::i;:::-;15537:2;15532:3;15528:12;15521:19;;15180:366;;;:::o;15552:419::-;15718:4;15756:2;15745:9;15741:18;15733:26;;15805:9;15799:4;15795:20;15791:1;15780:9;15776:17;15769:47;15833:131;15959:4;15833:131;:::i;:::-;15825:139;;15552:419;;;:::o;15977:221::-;16117:34;16113:1;16105:6;16101:14;16094:58;16186:4;16181:2;16173:6;16169:15;16162:29;15977:221;:::o;16204:366::-;16346:3;16367:67;16431:2;16426:3;16367:67;:::i;:::-;16360:74;;16443:93;16532:3;16443:93;:::i;:::-;16561:2;16556:3;16552:12;16545:19;;16204:366;;;:::o;16576:419::-;16742:4;16780:2;16769:9;16765:18;16757:26;;16829:9;16823:4;16819:20;16815:1;16804:9;16800:17;16793:47;16857:131;16983:4;16857:131;:::i;:::-;16849:139;;16576:419;;;:::o;17001:224::-;17141:34;17137:1;17129:6;17125:14;17118:58;17210:7;17205:2;17197:6;17193:15;17186:32;17001:224;:::o;17231:366::-;17373:3;17394:67;17458:2;17453:3;17394:67;:::i;:::-;17387:74;;17470:93;17559:3;17470:93;:::i;:::-;17588:2;17583:3;17579:12;17572:19;;17231:366;;;:::o;17603:419::-;17769:4;17807:2;17796:9;17792:18;17784:26;;17856:9;17850:4;17846:20;17842:1;17831:9;17827:17;17820:47;17884:131;18010:4;17884:131;:::i;:::-;17876:139;;17603:419;;;:::o;18028:222::-;18168:34;18164:1;18156:6;18152:14;18145:58;18237:5;18232:2;18224:6;18220:15;18213:30;18028:222;:::o;18256:366::-;18398:3;18419:67;18483:2;18478:3;18419:67;:::i;:::-;18412:74;;18495:93;18584:3;18495:93;:::i;:::-;18613:2;18608:3;18604:12;18597:19;;18256:366;;;:::o;18628:419::-;18794:4;18832:2;18821:9;18817:18;18809:26;;18881:9;18875:4;18871:20;18867:1;18856:9;18852:17;18845:47;18909:131;19035:4;18909:131;:::i;:::-;18901:139;;18628:419;;;:::o;19053:228::-;19193:34;19189:1;19181:6;19177:14;19170:58;19262:11;19257:2;19249:6;19245:15;19238:36;19053:228;:::o;19287:366::-;19429:3;19450:67;19514:2;19509:3;19450:67;:::i;:::-;19443:74;;19526:93;19615:3;19526:93;:::i;:::-;19644:2;19639:3;19635:12;19628:19;;19287:366;;;:::o;19659:419::-;19825:4;19863:2;19852:9;19848:18;19840:26;;19912:9;19906:4;19902:20;19898:1;19887:9;19883:17;19876:47;19940:131;20066:4;19940:131;:::i;:::-;19932:139;;19659:419;;;:::o;20084:175::-;20224:27;20220:1;20212:6;20208:14;20201:51;20084:175;:::o;20265:366::-;20407:3;20428:67;20492:2;20487:3;20428:67;:::i;:::-;20421:74;;20504:93;20593:3;20504:93;:::i;:::-;20622:2;20617:3;20613:12;20606:19;;20265:366;;;:::o;20637:419::-;20803:4;20841:2;20830:9;20826:18;20818:26;;20890:9;20884:4;20880:20;20876:1;20865:9;20861:17;20854:47;20918:131;21044:4;20918:131;:::i;:::-;20910:139;;20637:419;;;:::o;21062:191::-;21102:3;21121:20;21139:1;21121:20;:::i;:::-;21116:25;;21155:20;21173:1;21155:20;:::i;:::-;21150:25;;21198:1;21195;21191:9;21184:16;;21219:3;21216:1;21213:10;21210:36;;;21226:18;;:::i;:::-;21210:36;21062:191;;;;:::o;21259:176::-;21399:28;21395:1;21387:6;21383:14;21376:52;21259:176;:::o;21441:366::-;21583:3;21604:67;21668:2;21663:3;21604:67;:::i;:::-;21597:74;;21680:93;21769:3;21680:93;:::i;:::-;21798:2;21793:3;21789:12;21782:19;;21441:366;;;:::o;21813:419::-;21979:4;22017:2;22006:9;22002:18;21994:26;;22066:9;22060:4;22056:20;22052:1;22041:9;22037:17;22030:47;22094:131;22220:4;22094:131;:::i;:::-;22086:139;;21813:419;;;:::o;22238:233::-;22277:3;22300:24;22318:5;22300:24;:::i;:::-;22291:33;;22346:66;22339:5;22336:77;22333:103;;22416:18;;:::i;:::-;22333:103;22463:1;22456:5;22452:13;22445:20;;22238:233;;;:::o;22477:173::-;22617:25;22613:1;22605:6;22601:14;22594:49;22477:173;:::o;22656:366::-;22798:3;22819:67;22883:2;22878:3;22819:67;:::i;:::-;22812:74;;22895:93;22984:3;22895:93;:::i;:::-;23013:2;23008:3;23004:12;22997:19;;22656:366;;;:::o;23028:419::-;23194:4;23232:2;23221:9;23217:18;23209:26;;23281:9;23275:4;23271:20;23267:1;23256:9;23252:17;23245:47;23309:131;23435:4;23309:131;:::i;:::-;23301:139;;23028:419;;;:::o;23453:194::-;23493:4;23513:20;23531:1;23513:20;:::i;:::-;23508:25;;23547:20;23565:1;23547:20;:::i;:::-;23542:25;;23591:1;23588;23584:9;23576:17;;23615:1;23609:4;23606:11;23603:37;;;23620:18;;:::i;:::-;23603:37;23453:194;;;;:::o;23653:180::-;23701:77;23698:1;23691:88;23798:4;23795:1;23788:15;23822:4;23819:1;23812:15;23839:180;23887:77;23884:1;23877:88;23984:4;23981:1;23974:15;24008:4;24005:1;23998:15;24025:114;24092:6;24126:5;24120:12;24110:22;;24025:114;;;:::o;24145:184::-;24244:11;24278:6;24273:3;24266:19;24318:4;24313:3;24309:14;24294:29;;24145:184;;;;:::o;24335:132::-;24402:4;24425:3;24417:11;;24455:4;24450:3;24446:14;24438:22;;24335:132;;;:::o;24473:108::-;24550:24;24568:5;24550:24;:::i;:::-;24545:3;24538:37;24473:108;;:::o;24587:179::-;24656:10;24677:46;24719:3;24711:6;24677:46;:::i;:::-;24755:4;24750:3;24746:14;24732:28;;24587:179;;;;:::o;24772:113::-;24842:4;24874;24869:3;24865:14;24857:22;;24772:113;;;:::o;24921:732::-;25040:3;25069:54;25117:5;25069:54;:::i;:::-;25139:86;25218:6;25213:3;25139:86;:::i;:::-;25132:93;;25249:56;25299:5;25249:56;:::i;:::-;25328:7;25359:1;25344:284;25369:6;25366:1;25363:13;25344:284;;;25445:6;25439:13;25472:63;25531:3;25516:13;25472:63;:::i;:::-;25465:70;;25558:60;25611:6;25558:60;:::i;:::-;25548:70;;25404:224;25391:1;25388;25384:9;25379:14;;25344:284;;;25348:14;25644:3;25637:10;;25045:608;;;24921:732;;;;:::o;25659:831::-;25922:4;25960:3;25949:9;25945:19;25937:27;;25974:71;26042:1;26031:9;26027:17;26018:6;25974:71;:::i;:::-;26055:80;26131:2;26120:9;26116:18;26107:6;26055:80;:::i;:::-;26182:9;26176:4;26172:20;26167:2;26156:9;26152:18;26145:48;26210:108;26313:4;26304:6;26210:108;:::i;:::-;26202:116;;26328:72;26396:2;26385:9;26381:18;26372:6;26328:72;:::i;:::-;26410:73;26478:3;26467:9;26463:19;26454:6;26410:73;:::i;:::-;25659:831;;;;;;;;:::o;26496:180::-;26544:77;26541:1;26534:88;26641:4;26638:1;26631:15;26665:4;26662:1;26655:15;26682:185;26722:1;26739:20;26757:1;26739:20;:::i;:::-;26734:25;;26773:20;26791:1;26773:20;:::i;:::-;26768:25;;26812:1;26802:35;;26817:18;;:::i;:::-;26802:35;26859:1;26856;26852:9;26847:14;;26682:185;;;;:::o;26873:220::-;27013:34;27009:1;27001:6;26997:14;26990:58;27082:3;27077:2;27069:6;27065:15;27058:28;26873:220;:::o;27099:366::-;27241:3;27262:67;27326:2;27321:3;27262:67;:::i;:::-;27255:74;;27338:93;27427:3;27338:93;:::i;:::-;27456:2;27451:3;27447:12;27440:19;;27099:366;;;:::o;27471:419::-;27637:4;27675:2;27664:9;27660:18;27652:26;;27724:9;27718:4;27714:20;27710:1;27699:9;27695:17;27688:47;27752:131;27878:4;27752:131;:::i;:::-;27744:139;;27471:419;;;:::o;27896:177::-;28036:29;28032:1;28024:6;28020:14;28013:53;27896:177;:::o;28079:366::-;28221:3;28242:67;28306:2;28301:3;28242:67;:::i;:::-;28235:74;;28318:93;28407:3;28318:93;:::i;:::-;28436:2;28431:3;28427:12;28420:19;;28079:366;;;:::o;28451:419::-;28617:4;28655:2;28644:9;28640:18;28632:26;;28704:9;28698:4;28694:20;28690:1;28679:9;28675:17;28668:47;28732:131;28858:4;28732:131;:::i;:::-;28724:139;;28451:419;;;:::o
Swarm Source
ipfs://03e6a2ed30014b9478683f47e2cbc52c2fd046952b7397c8014d9982ba6a70c7
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.
Add Token to MetaMask (Web3)