Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 8,577 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 30037512 | 5 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 30013305 | 5 days ago | IN | 0 ETH | 0.0000001 | ||||
| Approve | 30011332 | 5 days ago | IN | 0 ETH | 0.00000027 | ||||
| Approve | 30003280 | 5 days ago | IN | 0 ETH | 0.0000001 | ||||
| Approve | 29960420 | 6 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 29948211 | 7 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 29899891 | 8 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 29895926 | 8 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 29864270 | 9 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 29701427 | 12 days ago | IN | 0 ETH | 0.00000123 | ||||
| Approve | 29530457 | 16 days ago | IN | 0 ETH | 0.00000219 | ||||
| Approve | 29315672 | 21 days ago | IN | 0 ETH | 0.00000005 | ||||
| Approve | 29226460 | 23 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 29155734 | 25 days ago | IN | 0 ETH | 0.00000017 | ||||
| Approve | 29145663 | 25 days ago | IN | 0 ETH | 0.00000043 | ||||
| Approve | 29103955 | 26 days ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 29079675 | 27 days ago | IN | 0 ETH | 0.00000016 | ||||
| Approve | 29051706 | 27 days ago | IN | 0 ETH | 0.00000007 | ||||
| Approve | 28944170 | 30 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 28893794 | 31 days ago | IN | 0 ETH | 0.00000008 | ||||
| Approve | 28672449 | 36 days ago | IN | 0 ETH | 0.00000314 | ||||
| Approve | 28671134 | 36 days ago | IN | 0 ETH | 0.00000049 | ||||
| Approve | 28645777 | 37 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 28624185 | 37 days ago | IN | 0 ETH | 0.00000004 | ||||
| Approve | 28545027 | 39 days ago | IN | 0 ETH | 0.00000018 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers.
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 30256954 | 23 secs ago | 0 ETH | |||||
| 30256953 | 25 secs ago | 0 ETH | |||||
| 30256952 | 27 secs ago | 0 ETH | |||||
| 30256951 | 29 secs ago | 0 ETH | |||||
| 30256950 | 31 secs ago | 0 ETH | |||||
| 30256949 | 33 secs ago | 0 ETH | |||||
| 30256948 | 35 secs ago | 0 ETH | |||||
| 30256947 | 37 secs ago | 0 ETH | |||||
| 30256947 | 37 secs ago | 0 ETH | |||||
| 30256945 | 41 secs ago | 0 ETH | |||||
| 30256944 | 43 secs ago | 0 ETH | |||||
| 30256943 | 45 secs ago | 0 ETH | |||||
| 30256942 | 47 secs ago | 0 ETH | |||||
| 30256941 | 49 secs ago | 0 ETH | |||||
| 30256940 | 51 secs ago | 0 ETH | |||||
| 30256939 | 53 secs ago | 0 ETH | |||||
| 30256938 | 55 secs ago | 0 ETH | |||||
| 30256937 | 57 secs ago | 0 ETH | |||||
| 30256936 | 1 min ago | 0 ETH | |||||
| 30256935 | 1 min ago | 0 ETH | |||||
| 30256934 | 1 min ago | 0 ETH | |||||
| 30256933 | 1 min ago | 0 ETH | |||||
| 30256932 | 1 min ago | 0 ETH | |||||
| 30256931 | 1 min ago | 0 ETH | |||||
| 30256930 | 1 min ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BlasterswapV2Pair
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/**
*Submitted for verification at blastscan.io on 2024-03-01
*/
// Sources flattened with hardhat v2.19.1 https://hardhat.org
pragma solidity >=0.5.16;
interface IBlasterswapV2ERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}
library SafeMath {
function add(uint x, uint y) internal pure returns (uint z) {
require((z = x + y) >= x, "ds-math-add-overflow");
}
function sub(uint x, uint y) internal pure returns (uint z) {
require((z = x - y) <= x, "ds-math-sub-underflow");
}
function mul(uint x, uint y) internal pure returns (uint z) {
require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
}
}
contract BlasterswapV2ERC20 is IBlasterswapV2ERC20 {
using SafeMath for uint;
string public constant name = "Blaster LP";
string public constant symbol = "Blaster-LP";
uint8 public constant decimals = 18;
uint public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;
bytes32 public DOMAIN_SEPARATOR;
// keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
bytes32 public constant PERMIT_TYPEHASH =
0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
mapping(address => uint) public nonces;
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
constructor() public {
uint chainId;
assembly {
chainId := chainid
}
DOMAIN_SEPARATOR = keccak256(
abi.encode(
keccak256(
"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
),
keccak256(bytes(name)),
keccak256(bytes("1")),
chainId,
address(this)
)
);
}
function _mint(address to, uint value) internal {
totalSupply = totalSupply.add(value);
balanceOf[to] = balanceOf[to].add(value);
emit Transfer(address(0), to, value);
}
function _burn(address from, uint value) internal {
balanceOf[from] = balanceOf[from].sub(value);
totalSupply = totalSupply.sub(value);
emit Transfer(from, address(0), value);
}
function _approve(address owner, address spender, uint value) private {
allowance[owner][spender] = value;
emit Approval(owner, spender, value);
}
function _transfer(address from, address to, uint value) private {
balanceOf[from] = balanceOf[from].sub(value);
balanceOf[to] = balanceOf[to].add(value);
emit Transfer(from, to, value);
}
function approve(address spender, uint value) external returns (bool) {
_approve(msg.sender, spender, value);
return true;
}
function transfer(address to, uint value) external returns (bool) {
_transfer(msg.sender, to, value);
return true;
}
function transferFrom(
address from,
address to,
uint value
) external returns (bool) {
if (allowance[from][msg.sender] != uint(-1)) {
allowance[from][msg.sender] = allowance[from][msg.sender].sub(
value
);
}
_transfer(from, to, value);
return true;
}
function permit(
address owner,
address spender,
uint value,
uint deadline,
uint8 v,
bytes32 r,
bytes32 s
) external {
require(deadline >= block.timestamp, "BlasterswapV2: EXPIRED");
bytes32 digest = keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR,
keccak256(
abi.encode(
PERMIT_TYPEHASH,
owner,
spender,
value,
nonces[owner]++,
deadline
)
)
)
);
address recoveredAddress = ecrecover(digest, v, r, s);
require(
recoveredAddress != address(0) && recoveredAddress == owner,
"BlasterswapV2: INVALID_SIGNATURE"
);
_approve(owner, spender, value);
}
}
interface IBlast {
function configureClaimableGas() external;
function configureGovernor(address governor) external;
function configureClaimableYield() external;
function claimAllYield(address contractAddress, address recipientOfYield) external returns (uint256);
function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
}
interface IBlasterswapV2Callee {
function blasterswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}
interface IBlasterswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IBlasterswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(
address owner,
address spender
) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(
address from,
address to,
uint value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(
address owner,
address spender,
uint value,
uint deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(
address indexed sender,
uint amount0,
uint amount1,
address indexed to
);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(
uint amount0Out,
uint amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address, address) external;
}
interface IBlastPoints {
function configurePointsOperator(address operator) external;
}
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
}
interface IERC20Rebasing {
enum YieldMode {
AUTOMATIC,
VOID,
CLAIMABLE
}
// changes the yield mode of the caller and update the balance
// to reflect the configuration
function configure(YieldMode) external returns (uint256);
function claim(address recipient, uint256 amount) external returns (uint256);
// read the claimable amount for an account
function getClaimableAmount(address account) external view returns (uint256);
}
library Math {
function min(uint x, uint y) internal pure returns (uint z) {
z = x < y ? x : y;
}
// babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
function sqrt(uint y) internal pure returns (uint z) {
if (y > 3) {
z = y;
uint x = y / 2 + 1;
while (x < z) {
z = x;
x = (y / x + x) / 2;
}
} else if (y != 0) {
z = 1;
}
}
}
library UQ112x112 {
uint224 constant Q112 = 2 ** 112;
// encode a uint112 as a UQ112x112
function encode(uint112 y) internal pure returns (uint224 z) {
z = uint224(y) * Q112; // never overflows
}
// divide a UQ112x112 by a uint112, returning a UQ112x112
function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
z = x / uint224(y);
}
}
contract BlasterswapV2Pair is IBlasterswapV2Pair, BlasterswapV2ERC20 {
using SafeMath for uint;
using UQ112x112 for uint224;
uint public constant MINIMUM_LIQUIDITY = 10**3;
bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));
address public factory;
address public token0;
address public token1;
uint112 private reserve0; // uses single storage slot, accessible via getReserves
uint112 private reserve1; // uses single storage slot, accessible via getReserves
uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves
uint public price0CumulativeLast;
uint public price1CumulativeLast;
uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event
IERC20Rebasing public constant USDB = IERC20Rebasing(0x4300000000000000000000000000000000000003);
IERC20Rebasing public constant WETH = IERC20Rebasing(0x4300000000000000000000000000000000000004);
address public constant blast = 0x4300000000000000000000000000000000000002;
address public constant blastPoints = 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800;
address public constant blastPointsOperator = 0xd94ff4fe12Dd3EA08BE632A5393771CF87808977;
uint private unlocked = 1;
modifier lock() {
require(unlocked == 1, 'BlasterswapV2: LOCKED');
unlocked = 0;
_;
unlocked = 1;
}
modifier claimYield(){
claimYieldAndUpdate();
_;
}
function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
_reserve0 = reserve0;
_reserve1 = reserve1;
_blockTimestampLast = blockTimestampLast;
}
function _safeTransfer(address token, address to, uint value) private {
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))), 'BlasterswapV2: TRANSFER_FAILED');
}
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
constructor() public {
factory = msg.sender;
}
// called once by the factory at time of deployment
function initialize(address _token0, address _token1, address _governor) external {
require(msg.sender == factory, 'BlasterswapV2: FORBIDDEN'); // sufficient check
require(address(0) != _governor, 'BlasterswapV2: governor is zero address');
token0 = _token0;
token1 = _token1;
IBlastPoints(blastPoints).configurePointsOperator(blastPointsOperator);
IBlast iblast = IBlast(blast);
iblast.configureClaimableGas();
iblast.configureGovernor(_governor);
if (token0 == address(USDB) || token1 == address(USDB)) {
USDB.configure(IERC20Rebasing.YieldMode.CLAIMABLE);
}
if (token0 == address(WETH) || token1 == address(WETH)) {
WETH.configure(IERC20Rebasing.YieldMode.CLAIMABLE);
}
}
// update reserves and, on the first call per block, price accumulators
function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'BlasterswapV2: OVERFLOW');
uint32 blockTimestamp = uint32(block.timestamp % 2**32);
uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
// * never overflows, and + overflow is desired
price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
}
reserve0 = uint112(balance0);
reserve1 = uint112(balance1);
blockTimestampLast = blockTimestamp;
emit Sync(reserve0, reserve1);
}
// if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
address feeTo = IBlasterswapV2Factory(factory).feeTo();
feeOn = feeTo != address(0);
uint _kLast = kLast; // gas savings
if (feeOn) {
if (_kLast != 0) {
uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
uint rootKLast = Math.sqrt(_kLast);
if (rootK > rootKLast) {
uint numerator = totalSupply.mul(rootK.sub(rootKLast));
uint denominator = rootK.mul(5).add(rootKLast);
uint liquidity = numerator / denominator;
if (liquidity > 0) _mint(feeTo, liquidity);
}
}
} else if (_kLast != 0) {
kLast = 0;
}
}
// this low-level function should be called from a contract which performs important safety checks
function mint(address to) external lock claimYield returns (uint liquidity) {
(uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
uint balance0 = IERC20(token0).balanceOf(address(this));
uint balance1 = IERC20(token1).balanceOf(address(this));
uint amount0 = balance0.sub(_reserve0);
uint amount1 = balance1.sub(_reserve1);
bool feeOn = _mintFee(_reserve0, _reserve1);
uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
if (_totalSupply == 0) {
liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
_mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
} else {
liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
}
require(liquidity > 0, 'BlasterswapV2: INSUFFICIENT_LIQUIDITY_MINTED');
_mint(to, liquidity);
_update(balance0, balance1, _reserve0, _reserve1);
if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
emit Mint(msg.sender, amount0, amount1);
}
// this low-level function should be called from a contract which performs important safety checks
function burn(address to) external lock claimYield returns (uint amount0, uint amount1) {
(uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
address _token0 = token0; // gas savings
address _token1 = token1; // gas savings
uint balance0 = IERC20(_token0).balanceOf(address(this));
uint balance1 = IERC20(_token1).balanceOf(address(this));
uint liquidity = balanceOf[address(this)];
bool feeOn = _mintFee(_reserve0, _reserve1);
uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
require(amount0 > 0 && amount1 > 0, 'BlasterswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
_burn(address(this), liquidity);
_safeTransfer(_token0, to, amount0);
_safeTransfer(_token1, to, amount1);
balance0 = IERC20(_token0).balanceOf(address(this));
balance1 = IERC20(_token1).balanceOf(address(this));
_update(balance0, balance1, _reserve0, _reserve1);
if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
emit Burn(msg.sender, amount0, amount1, to);
}
// this low-level function should be called from a contract which performs important safety checks
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
require(amount0Out > 0 || amount1Out > 0, 'BlasterswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
(uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
require(amount0Out < _reserve0 && amount1Out < _reserve1, 'BlasterswapV2: INSUFFICIENT_LIQUIDITY');
uint balance0;
uint balance1;
{ // scope for _token{0,1}, avoids stack too deep errors
address _token0 = token0;
address _token1 = token1;
require(to != _token0 && to != _token1, 'BlasterswapV2: INVALID_TO');
if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
if (data.length > 0) IBlasterswapV2Callee(to).blasterswapV2Call(msg.sender, amount0Out, amount1Out, data);
balance0 = IERC20(_token0).balanceOf(address(this));
balance1 = IERC20(_token1).balanceOf(address(this));
}
uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
require(amount0In > 0 || amount1In > 0, 'BlasterswapV2: INSUFFICIENT_INPUT_AMOUNT');
{ // scope for reserve{0,1}Adjusted, avoids stack too deep errors
uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'BlasterswapV2: K');
}
_update(balance0, balance1, _reserve0, _reserve1);
emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
}
// force balances to match reserves
function skim(address to) external lock {
address _token0 = token0; // gas savings
address _token1 = token1; // gas savings
_safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
_safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
}
// force reserves to match balances
function sync() public lock {
_update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
}
function claimYieldAndUpdate() internal {
uint256 amountClaimedUSDB;
uint256 amountClaimedWETH;
if (token0 == address(USDB) || token1 == address(USDB)) {
uint256 claimableAmount = USDB.getClaimableAmount(address(this));
amountClaimedUSDB = USDB.claim(address(this), claimableAmount);
}
if (token0 == address(WETH) || token1 == address(WETH)) {
uint256 claimableAmount = WETH.getClaimableAmount(address(this));
amountClaimedWETH = WETH.claim(address(this), claimableAmount);
}
uint balance0 = reserve0;
uint balance1 = reserve1;
if (token0==address(USDB)) {
balance0 += amountClaimedUSDB;
} else if (token0 == address(WETH)){
balance0 += amountClaimedWETH;
}
if (token1==address(USDB)) {
balance1 += amountClaimedUSDB;
} else if (token1 == address(WETH)){
balance1 += amountClaimedWETH;
}
_update(balance0, balance1, reserve0, reserve1);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","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"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USDB","outputs":[{"internalType":"contract IERC20Rebasing","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IERC20Rebasing","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blast","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blastPoints","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blastPointsOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_governor","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526001600c5534801561001557600080fd5b506040514690806052612caf8239604080519182900360520182208282018252600a8352690426c6173746572204c560b41b6020938401528151808301835260018152603160f81b908401528151808401919091527f4e30ce3bf66895e118d99dc7a3f0429bf9260eede83f7aa43d6a3b4e9373c996818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612baa806101056000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c806370a082311161010f578063ba9a7a56116100a2578063d21220a711610071578063d21220a7146105ad578063d505accf146105b5578063dd62ed3e14610606578063fff6cae914610634576101f0565b8063ba9a7a561461053f578063bc25cf7714610547578063c0c53b8b1461056d578063c45a0155146105a5576101f0565b806395d89b41116100de57806395d89b41146104fb578063a9059cbb14610503578063ad5c46481461052f578063b2bd6b5014610537576101f0565b806370a08231146104685780637464fc3d1461048e5780637ecebe001461049657806389afcb44146104bc576101f0565b806330adf81f1161018757806340ae3e141161015657806340ae3e141461042a5780635909c0d5146104325780635a3d54931461043a5780636a62784214610442576101f0565b806330adf81f146103f4578063313ce567146103fc57806331a0edec1461041a5780633644e51514610422576101f0565b80630dfe1681116101c35780630dfe168114610378578063175e1a7d1461039c57806318160ddd146103a457806323b872dd146103be576101f0565b8063022c0d9f146101f557806306fdde03146102835780630902f1ac14610300578063095ea7b314610338575b600080fd5b6102816004803603608081101561020b57600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561024257600080fd5b82018360208201111561025457600080fd5b8035906020019184600183028401116401000000008311171561027657600080fd5b50909250905061063c565b005b61028b610b9c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c55781810151838201526020016102ad565b50505050905090810190601f1680156102f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308610bd5565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103646004803603604081101561034e57600080fd5b506001600160a01b038135169060200135610bff565b604080519115158252519081900360200190f35b610380610c16565b604080516001600160a01b039092168252519081900360200190f35b610380610c25565b6103ac610c3d565b60408051918252519081900360200190f35b610364600480360360608110156103d457600080fd5b506001600160a01b03813581169160208101359091169060400135610c43565b6103ac610cfb565b610404610d1f565b6040805160ff9092168252519081900360200190f35b610380610d24565b6103ac610d2f565b610380610d35565b6103ac610d4d565b6103ac610d53565b6103ac6004803603602081101561045857600080fd5b50356001600160a01b0316610d59565b6103ac6004803603602081101561047e57600080fd5b50356001600160a01b031661106d565b6103ac61107f565b6103ac600480360360208110156104ac57600080fd5b50356001600160a01b0316611085565b6104e2600480360360208110156104d257600080fd5b50356001600160a01b0316611097565b6040805192835260208301919091528051918290030190f35b61028b611451565b6103646004803603604081101561051957600080fd5b506001600160a01b03813516906020013561148a565b610380611497565b6103806114a2565b6103ac6114ba565b6102816004803603602081101561055d57600080fd5b50356001600160a01b03166114c0565b6102816004803603606081101561058357600080fd5b506001600160a01b038135811691602081013582169160409091013516611637565b610380611a28565b610380611a37565b610281600480360360e08110156105cb57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a46565b6103ac6004803603604081101561061c57600080fd5b506001600160a01b0381358116916020013516611c6e565b610281611c8b565b600c54600114610693576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55841515806106a65750600084115b6106e15760405162461bcd60e51b8152600401808060200182810382526029815260200180612aa96029913960400191505060405180910390fd5b6000806106ec610bd5565b5091509150816001600160701b0316871080156107115750806001600160701b031686105b61074c5760405162461bcd60e51b8152600401808060200182810382526025815260200180612ad26025913960400191505060405180910390fd5b60065460075460009182916001600160a01b0391821691908116908916821480159061078a5750806001600160a01b0316896001600160a01b031614155b6107db576040805162461bcd60e51b815260206004820152601960248201527f426c61737465727377617056323a20494e56414c49445f544f00000000000000604482015290519081900360640190fd5b8a156107ec576107ec828a8d611df9565b89156107fd576107fd818a8c611df9565b86156108b857886001600160a01b031663403c14d5338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561089f57600080fd5b505af11580156108b3573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156108fe57600080fd5b505afa158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d602081101561099e57600080fd5b5051925060009150506001600160701b0385168a900383116109c15760006109d0565b89856001600160701b03160383035b9050600089856001600160701b03160383116109ed5760006109fc565b89856001600160701b03160383035b90506000821180610a0d5750600081115b610a485760405162461bcd60e51b8152600401808060200182810382526028815260200180612a816028913960400191505060405180910390fd5b6000610a7c610a5e84600363ffffffff611fac16565b610a70876103e863ffffffff611fac16565b9063ffffffff61201816565b90506000610a94610a5e84600363ffffffff611fac16565b9050610ac5620f4240610ab96001600160701b038b8116908b1663ffffffff611fac16565b9063ffffffff611fac16565b610ad5838363ffffffff611fac16565b1015610b28576040805162461bcd60e51b815260206004820152601060248201527f426c61737465727377617056323a204b00000000000000000000000000000000604482015290519081900360640190fd5b5050610b3684848888612070565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f426c6173746572204c500000000000000000000000000000000000000000000081525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610c0c33848461225e565b5060015b92915050565b6006546001600160a01b031681565b73430000000000000000000000000000000000000281565b60005481565b6001600160a01b03831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ce6576001600160a01b0384166000908152600260209081526040808320338452909152902054610cc1908363ffffffff61201816565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610cf18484846122c0565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6003604360981b0181565b60035481565b73d94ff4fe12dd3ea08be632a5393771cf8780897781565b60095481565b600a5481565b6000600c54600114610db2576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55610dbf61237a565b600080610dca610bd5565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610e1e57600080fd5b505afa158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e9b57600080fd5b505afa158015610eaf573d6000803e3d6000fd5b505050506040513d6020811015610ec557600080fd5b505190506000610ee4836001600160701b03871663ffffffff61201816565b90506000610f01836001600160701b03871663ffffffff61201816565b90506000610f0f87876126f5565b60005490915080610f4c57610f386103e8610a70610f33878763ffffffff611fac16565b612853565b9850610f4760006103e86128a5565b610f9b565b610f986001600160701b038916610f69868463ffffffff611fac16565b81610f7057fe5b046001600160701b038916610f8b868563ffffffff611fac16565b81610f9257fe5b0461293b565b98505b60008911610fda5760405162461bcd60e51b815260040180806020018281038252602c815260200180612b4a602c913960400191505060405180910390fd5b610fe48a8a6128a5565b610ff086868a8a612070565b81156110205760085461101c906001600160701b0380821691600160701b90041663ffffffff611fac16565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146110f1576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c556110fe61237a565b600080611109610bd5565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561116557600080fd5b505afa158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156111dd57600080fd5b505afa1580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50513060009081526001602052604081205491925061122688886126f5565b6000549091508061123d848763ffffffff611fac16565b8161124457fe5b049a5080611258848663ffffffff611fac16565b8161125f57fe5b04995060008b118015611272575060008a115b6112ad5760405162461bcd60e51b815260040180806020018281038252602c815260200180612af7602c913960400191505060405180910390fd5b6112b73084612953565b6112c2878d8d611df9565b6112cd868d8c611df9565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561131357600080fd5b505afa158015611327573d6000803e3d6000fd5b505050506040513d602081101561133d57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561138957600080fd5b505afa15801561139d573d6000803e3d6000fd5b505050506040513d60208110156113b357600080fd5b505193506113c385858b8b612070565b81156113f3576008546113ef906001600160701b0380821691600160701b90041663ffffffff611fac16565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600a81526020017f426c61737465722d4c500000000000000000000000000000000000000000000081525081565b6000610c0c3384846122c0565b6004604360981b0181565b732536fe9ab3f511540f2f9e2ec2a805005c3dd80081565b6103e881565b600c54600114611517576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926115c692859287926115c1926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50519063ffffffff61201816565b611df9565b600854604080516370a0823160e01b8152306004820152905161162d92849287926115c192600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561158957600080fd5b50506001600c5550565b6005546001600160a01b03163314611696576040805162461bcd60e51b815260206004820152601860248201527f426c61737465727377617056323a20464f5242494444454e0000000000000000604482015290519081900360640190fd5b6001600160a01b0381166116db5760405162461bcd60e51b8152600401808060200182810382526027815260200180612b236027913960400191505060405180910390fd5b600680546001600160a01b038086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556007805492851692909116919091179055604080517f36b91f2b00000000000000000000000000000000000000000000000000000000815273d94ff4fe12dd3ea08be632a5393771cf8780897760048201529051732536fe9ab3f511540f2f9e2ec2a805005c3dd800916336b91f2b91602480830192600092919082900301818387803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b5050505060007343000000000000000000000000000000000000029050806001600160a01b0316634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561180e57600080fd5b505af1158015611822573d6000803e3d6000fd5b50505050806001600160a01b031663eb864698836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561187e57600080fd5b505af1158015611892573d6000803e3d6000fd5b50506006546001600160a01b03166003604360981b011491508190506118c957506007546001600160a01b03166003604360981b01145b1561195d576040517f1a33757d0000000000000000000000000000000000000000000000000000000081526003604360981b0190631a33757d90600290600401808260ff168152602001915050602060405180830381600087803b15801561193057600080fd5b505af1158015611944573d6000803e3d6000fd5b505050506040513d602081101561195a57600080fd5b50505b6006546001600160a01b03166004604360981b01148061198e57506007546001600160a01b03166004604360981b01145b15611a22576040517f1a33757d0000000000000000000000000000000000000000000000000000000081526004604360981b0190631a33757d90600290600401808260ff168152602001915050602060405180830381600087803b1580156119f557600080fd5b505af1158015611a09573d6000803e3d6000fd5b505050506040513d6020811015611a1f57600080fd5b50505b50505050565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611a9b576040805162461bcd60e51b815260206004820152601660248201527f426c61737465727377617056323a204558504952454400000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611bd1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590611c075750886001600160a01b0316816001600160a01b0316145b611c58576040805162461bcd60e51b815260206004820181905260248201527f426c61737465727377617056323a20494e56414c49445f5349474e4154555245604482015290519081900360640190fd5b611c6389898961225e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611ce2576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611df2926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611d3357600080fd5b505afa158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015611daa57600080fd5b505afa158015611dbe573d6000803e3d6000fd5b505050506040513d6020811015611dd457600080fd5b50516008546001600160701b0380821691600160701b900416612070565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b03167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b60208310611ebf5780518252601f199092019160209182019101611ea0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f21576040519150601f19603f3d011682016040523d82523d6000602084013e611f26565b606091505b5091509150818015611f54575080511580611f545750808060200190516020811015611f5157600080fd5b50515b611fa5576040805162461bcd60e51b815260206004820152601e60248201527f426c61737465727377617056323a205452414e534645525f4641494c45440000604482015290519081900360640190fd5b5050505050565b6000811580611fc757505080820282828281611fc457fe5b04145b610c10576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610c10576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6001600160701b03841180159061208e57506001600160701b038311155b6120df576040805162461bcd60e51b815260206004820152601760248201527f426c61737465727377617056323a204f564552464c4f57000000000000000000604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b9004811682039081161580159061210f57506001600160701b03841615155b801561212357506001600160701b03831615155b15612194578063ffffffff166121518561213c866129f1565b6001600160e01b03169063ffffffff612a0316565b600980546001600160e01b03929092169290920201905563ffffffff811661217c8461213c876129f1565b600a80546001600160e01b0392909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166001600160701b03888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff16600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166000908152600160205260409020546122e9908263ffffffff61201816565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461231e908263ffffffff612a2816565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60065460009081906001600160a01b03166003604360981b0114806123b057506007546001600160a01b03166003604360981b01145b156124dc57604080517fe12f3a6100000000000000000000000000000000000000000000000000000000815230600482015290516000916003604360981b019163e12f3a6191602480820192602092909190829003018186803b15801561241657600080fd5b505afa15801561242a573d6000803e3d6000fd5b505050506040513d602081101561244057600080fd5b5051604080517faad3ec960000000000000000000000000000000000000000000000000000000081523060048201526024810183905290519192506003604360981b019163aad3ec96916044808201926020929091908290030181600087803b1580156124ac57600080fd5b505af11580156124c0573d6000803e3d6000fd5b505050506040513d60208110156124d657600080fd5b50519250505b6006546001600160a01b03166004604360981b01148061250d57506007546001600160a01b03166004604360981b01145b1561263957604080517fe12f3a6100000000000000000000000000000000000000000000000000000000815230600482015290516000916004604360981b019163e12f3a6191602480820192602092909190829003018186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d602081101561259d57600080fd5b5051604080517faad3ec960000000000000000000000000000000000000000000000000000000081523060048201526024810183905290519192506004604360981b019163aad3ec96916044808201926020929091908290030181600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b505050506040513d602081101561263357600080fd5b50519150505b6008546006546001600160701b0380831692600160701b900416906001600160a01b03166003604360981b0114156126745790830190612693565b6006546001600160a01b03166004604360981b01141561269357908201905b6007546001600160a01b03166003604360981b0114156126b45783016126d1565b6007546001600160a01b03166004604360981b0114156126d15782015b600854611a2290839083906001600160701b0380821691600160701b900416612070565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561274657600080fd5b505afa15801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051600b546001600160a01b03821615801594509192509061283f57801561283a5760006127b3610f336001600160701b0388811690881663ffffffff611fac16565b905060006127c083612853565b9050808211156128375760006127ee6127df848463ffffffff61201816565b6000549063ffffffff611fac16565b905060006128138361280786600563ffffffff611fac16565b9063ffffffff612a2816565b9050600081838161282057fe5b04905080156128335761283387826128a5565b5050505b50505b61284b565b801561284b576000600b555b505092915050565b60006003821115612896575080600160028204015b818110156128905780915060028182858161287f57fe5b04018161288857fe5b049050612868565b506128a0565b81156128a0575060015b919050565b6000546128b8908263ffffffff612a2816565b60009081556001600160a01b0383168152600160205260409020546128e3908263ffffffff612a2816565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081831061294a578161294c565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461297c908263ffffffff61201816565b6001600160a01b038316600090815260016020526040812091909155546129a9908263ffffffff61201816565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b03841681612a2057fe5b049392505050565b80820182811015610c10576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe426c61737465727377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54426c61737465727377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54426c61737465727377617056323a20494e53554646494349454e545f4c4951554944495459426c61737465727377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544426c61737465727377617056323a20676f7665726e6f72206973207a65726f2061646472657373426c61737465727377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582096ec6df123763988e5cb3b118d417ecb8eafa20ef1cebb0c41a98800bc24b0d864736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806370a082311161010f578063ba9a7a56116100a2578063d21220a711610071578063d21220a7146105ad578063d505accf146105b5578063dd62ed3e14610606578063fff6cae914610634576101f0565b8063ba9a7a561461053f578063bc25cf7714610547578063c0c53b8b1461056d578063c45a0155146105a5576101f0565b806395d89b41116100de57806395d89b41146104fb578063a9059cbb14610503578063ad5c46481461052f578063b2bd6b5014610537576101f0565b806370a08231146104685780637464fc3d1461048e5780637ecebe001461049657806389afcb44146104bc576101f0565b806330adf81f1161018757806340ae3e141161015657806340ae3e141461042a5780635909c0d5146104325780635a3d54931461043a5780636a62784214610442576101f0565b806330adf81f146103f4578063313ce567146103fc57806331a0edec1461041a5780633644e51514610422576101f0565b80630dfe1681116101c35780630dfe168114610378578063175e1a7d1461039c57806318160ddd146103a457806323b872dd146103be576101f0565b8063022c0d9f146101f557806306fdde03146102835780630902f1ac14610300578063095ea7b314610338575b600080fd5b6102816004803603608081101561020b57600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561024257600080fd5b82018360208201111561025457600080fd5b8035906020019184600183028401116401000000008311171561027657600080fd5b50909250905061063c565b005b61028b610b9c565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102c55781810151838201526020016102ad565b50505050905090810190601f1680156102f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610308610bd5565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103646004803603604081101561034e57600080fd5b506001600160a01b038135169060200135610bff565b604080519115158252519081900360200190f35b610380610c16565b604080516001600160a01b039092168252519081900360200190f35b610380610c25565b6103ac610c3d565b60408051918252519081900360200190f35b610364600480360360608110156103d457600080fd5b506001600160a01b03813581169160208101359091169060400135610c43565b6103ac610cfb565b610404610d1f565b6040805160ff9092168252519081900360200190f35b610380610d24565b6103ac610d2f565b610380610d35565b6103ac610d4d565b6103ac610d53565b6103ac6004803603602081101561045857600080fd5b50356001600160a01b0316610d59565b6103ac6004803603602081101561047e57600080fd5b50356001600160a01b031661106d565b6103ac61107f565b6103ac600480360360208110156104ac57600080fd5b50356001600160a01b0316611085565b6104e2600480360360208110156104d257600080fd5b50356001600160a01b0316611097565b6040805192835260208301919091528051918290030190f35b61028b611451565b6103646004803603604081101561051957600080fd5b506001600160a01b03813516906020013561148a565b610380611497565b6103806114a2565b6103ac6114ba565b6102816004803603602081101561055d57600080fd5b50356001600160a01b03166114c0565b6102816004803603606081101561058357600080fd5b506001600160a01b038135811691602081013582169160409091013516611637565b610380611a28565b610380611a37565b610281600480360360e08110156105cb57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611a46565b6103ac6004803603604081101561061c57600080fd5b506001600160a01b0381358116916020013516611c6e565b610281611c8b565b600c54600114610693576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55841515806106a65750600084115b6106e15760405162461bcd60e51b8152600401808060200182810382526029815260200180612aa96029913960400191505060405180910390fd5b6000806106ec610bd5565b5091509150816001600160701b0316871080156107115750806001600160701b031686105b61074c5760405162461bcd60e51b8152600401808060200182810382526025815260200180612ad26025913960400191505060405180910390fd5b60065460075460009182916001600160a01b0391821691908116908916821480159061078a5750806001600160a01b0316896001600160a01b031614155b6107db576040805162461bcd60e51b815260206004820152601960248201527f426c61737465727377617056323a20494e56414c49445f544f00000000000000604482015290519081900360640190fd5b8a156107ec576107ec828a8d611df9565b89156107fd576107fd818a8c611df9565b86156108b857886001600160a01b031663403c14d5338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561089f57600080fd5b505af11580156108b3573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156108fe57600080fd5b505afa158015610912573d6000803e3d6000fd5b505050506040513d602081101561092857600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d602081101561099e57600080fd5b5051925060009150506001600160701b0385168a900383116109c15760006109d0565b89856001600160701b03160383035b9050600089856001600160701b03160383116109ed5760006109fc565b89856001600160701b03160383035b90506000821180610a0d5750600081115b610a485760405162461bcd60e51b8152600401808060200182810382526028815260200180612a816028913960400191505060405180910390fd5b6000610a7c610a5e84600363ffffffff611fac16565b610a70876103e863ffffffff611fac16565b9063ffffffff61201816565b90506000610a94610a5e84600363ffffffff611fac16565b9050610ac5620f4240610ab96001600160701b038b8116908b1663ffffffff611fac16565b9063ffffffff611fac16565b610ad5838363ffffffff611fac16565b1015610b28576040805162461bcd60e51b815260206004820152601060248201527f426c61737465727377617056323a204b00000000000000000000000000000000604482015290519081900360640190fd5b5050610b3684848888612070565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f426c6173746572204c500000000000000000000000000000000000000000000081525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610c0c33848461225e565b5060015b92915050565b6006546001600160a01b031681565b73430000000000000000000000000000000000000281565b60005481565b6001600160a01b03831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ce6576001600160a01b0384166000908152600260209081526040808320338452909152902054610cc1908363ffffffff61201816565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610cf18484846122c0565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b6003604360981b0181565b60035481565b73d94ff4fe12dd3ea08be632a5393771cf8780897781565b60095481565b600a5481565b6000600c54600114610db2576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55610dbf61237a565b600080610dca610bd5565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610e1e57600080fd5b505afa158015610e32573d6000803e3d6000fd5b505050506040513d6020811015610e4857600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e9b57600080fd5b505afa158015610eaf573d6000803e3d6000fd5b505050506040513d6020811015610ec557600080fd5b505190506000610ee4836001600160701b03871663ffffffff61201816565b90506000610f01836001600160701b03871663ffffffff61201816565b90506000610f0f87876126f5565b60005490915080610f4c57610f386103e8610a70610f33878763ffffffff611fac16565b612853565b9850610f4760006103e86128a5565b610f9b565b610f986001600160701b038916610f69868463ffffffff611fac16565b81610f7057fe5b046001600160701b038916610f8b868563ffffffff611fac16565b81610f9257fe5b0461293b565b98505b60008911610fda5760405162461bcd60e51b815260040180806020018281038252602c815260200180612b4a602c913960400191505060405180910390fd5b610fe48a8a6128a5565b610ff086868a8a612070565b81156110205760085461101c906001600160701b0380821691600160701b90041663ffffffff611fac16565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c546001146110f1576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c556110fe61237a565b600080611109610bd5565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561116557600080fd5b505afa158015611179573d6000803e3d6000fd5b505050506040513d602081101561118f57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156111dd57600080fd5b505afa1580156111f1573d6000803e3d6000fd5b505050506040513d602081101561120757600080fd5b50513060009081526001602052604081205491925061122688886126f5565b6000549091508061123d848763ffffffff611fac16565b8161124457fe5b049a5080611258848663ffffffff611fac16565b8161125f57fe5b04995060008b118015611272575060008a115b6112ad5760405162461bcd60e51b815260040180806020018281038252602c815260200180612af7602c913960400191505060405180910390fd5b6112b73084612953565b6112c2878d8d611df9565b6112cd868d8c611df9565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561131357600080fd5b505afa158015611327573d6000803e3d6000fd5b505050506040513d602081101561133d57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b15801561138957600080fd5b505afa15801561139d573d6000803e3d6000fd5b505050506040513d60208110156113b357600080fd5b505193506113c385858b8b612070565b81156113f3576008546113ef906001600160701b0380821691600160701b90041663ffffffff611fac16565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600a81526020017f426c61737465722d4c500000000000000000000000000000000000000000000081525081565b6000610c0c3384846122c0565b6004604360981b0181565b732536fe9ab3f511540f2f9e2ec2a805005c3dd80081565b6103e881565b600c54600114611517576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926115c692859287926115c1926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50519063ffffffff61201816565b611df9565b600854604080516370a0823160e01b8152306004820152905161162d92849287926115c192600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561158957600080fd5b50506001600c5550565b6005546001600160a01b03163314611696576040805162461bcd60e51b815260206004820152601860248201527f426c61737465727377617056323a20464f5242494444454e0000000000000000604482015290519081900360640190fd5b6001600160a01b0381166116db5760405162461bcd60e51b8152600401808060200182810382526027815260200180612b236027913960400191505060405180910390fd5b600680546001600160a01b038086167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556007805492851692909116919091179055604080517f36b91f2b00000000000000000000000000000000000000000000000000000000815273d94ff4fe12dd3ea08be632a5393771cf8780897760048201529051732536fe9ab3f511540f2f9e2ec2a805005c3dd800916336b91f2b91602480830192600092919082900301818387803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b5050505060007343000000000000000000000000000000000000029050806001600160a01b0316634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561180e57600080fd5b505af1158015611822573d6000803e3d6000fd5b50505050806001600160a01b031663eb864698836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561187e57600080fd5b505af1158015611892573d6000803e3d6000fd5b50506006546001600160a01b03166003604360981b011491508190506118c957506007546001600160a01b03166003604360981b01145b1561195d576040517f1a33757d0000000000000000000000000000000000000000000000000000000081526003604360981b0190631a33757d90600290600401808260ff168152602001915050602060405180830381600087803b15801561193057600080fd5b505af1158015611944573d6000803e3d6000fd5b505050506040513d602081101561195a57600080fd5b50505b6006546001600160a01b03166004604360981b01148061198e57506007546001600160a01b03166004604360981b01145b15611a22576040517f1a33757d0000000000000000000000000000000000000000000000000000000081526004604360981b0190631a33757d90600290600401808260ff168152602001915050602060405180830381600087803b1580156119f557600080fd5b505af1158015611a09573d6000803e3d6000fd5b505050506040513d6020811015611a1f57600080fd5b50505b50505050565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611a9b576040805162461bcd60e51b815260206004820152601660248201527f426c61737465727377617056323a204558504952454400000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa158015611bd1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590611c075750886001600160a01b0316816001600160a01b0316145b611c58576040805162461bcd60e51b815260206004820181905260248201527f426c61737465727377617056323a20494e56414c49445f5349474e4154555245604482015290519081900360640190fd5b611c6389898961225e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611ce2576040805162461bcd60e51b815260206004820152601560248201527f426c61737465727377617056323a204c4f434b45440000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611df2926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611d3357600080fd5b505afa158015611d47573d6000803e3d6000fd5b505050506040513d6020811015611d5d57600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015611daa57600080fd5b505afa158015611dbe573d6000803e3d6000fd5b505050506040513d6020811015611dd457600080fd5b50516008546001600160701b0380821691600160701b900416612070565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b03167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b60208310611ebf5780518252601f199092019160209182019101611ea0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f21576040519150601f19603f3d011682016040523d82523d6000602084013e611f26565b606091505b5091509150818015611f54575080511580611f545750808060200190516020811015611f5157600080fd5b50515b611fa5576040805162461bcd60e51b815260206004820152601e60248201527f426c61737465727377617056323a205452414e534645525f4641494c45440000604482015290519081900360640190fd5b5050505050565b6000811580611fc757505080820282828281611fc457fe5b04145b610c10576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610c10576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6001600160701b03841180159061208e57506001600160701b038311155b6120df576040805162461bcd60e51b815260206004820152601760248201527f426c61737465727377617056323a204f564552464c4f57000000000000000000604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b9004811682039081161580159061210f57506001600160701b03841615155b801561212357506001600160701b03831615155b15612194578063ffffffff166121518561213c866129f1565b6001600160e01b03169063ffffffff612a0316565b600980546001600160e01b03929092169290920201905563ffffffff811661217c8461213c876129f1565b600a80546001600160e01b0392909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166001600160701b03888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff16600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166000908152600160205260409020546122e9908263ffffffff61201816565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461231e908263ffffffff612a2816565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60065460009081906001600160a01b03166003604360981b0114806123b057506007546001600160a01b03166003604360981b01145b156124dc57604080517fe12f3a6100000000000000000000000000000000000000000000000000000000815230600482015290516000916003604360981b019163e12f3a6191602480820192602092909190829003018186803b15801561241657600080fd5b505afa15801561242a573d6000803e3d6000fd5b505050506040513d602081101561244057600080fd5b5051604080517faad3ec960000000000000000000000000000000000000000000000000000000081523060048201526024810183905290519192506003604360981b019163aad3ec96916044808201926020929091908290030181600087803b1580156124ac57600080fd5b505af11580156124c0573d6000803e3d6000fd5b505050506040513d60208110156124d657600080fd5b50519250505b6006546001600160a01b03166004604360981b01148061250d57506007546001600160a01b03166004604360981b01145b1561263957604080517fe12f3a6100000000000000000000000000000000000000000000000000000000815230600482015290516000916004604360981b019163e12f3a6191602480820192602092909190829003018186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d602081101561259d57600080fd5b5051604080517faad3ec960000000000000000000000000000000000000000000000000000000081523060048201526024810183905290519192506004604360981b019163aad3ec96916044808201926020929091908290030181600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b505050506040513d602081101561263357600080fd5b50519150505b6008546006546001600160701b0380831692600160701b900416906001600160a01b03166003604360981b0114156126745790830190612693565b6006546001600160a01b03166004604360981b01141561269357908201905b6007546001600160a01b03166003604360981b0114156126b45783016126d1565b6007546001600160a01b03166004604360981b0114156126d15782015b600854611a2290839083906001600160701b0380821691600160701b900416612070565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561274657600080fd5b505afa15801561275a573d6000803e3d6000fd5b505050506040513d602081101561277057600080fd5b5051600b546001600160a01b03821615801594509192509061283f57801561283a5760006127b3610f336001600160701b0388811690881663ffffffff611fac16565b905060006127c083612853565b9050808211156128375760006127ee6127df848463ffffffff61201816565b6000549063ffffffff611fac16565b905060006128138361280786600563ffffffff611fac16565b9063ffffffff612a2816565b9050600081838161282057fe5b04905080156128335761283387826128a5565b5050505b50505b61284b565b801561284b576000600b555b505092915050565b60006003821115612896575080600160028204015b818110156128905780915060028182858161287f57fe5b04018161288857fe5b049050612868565b506128a0565b81156128a0575060015b919050565b6000546128b8908263ffffffff612a2816565b60009081556001600160a01b0383168152600160205260409020546128e3908263ffffffff612a2816565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081831061294a578161294c565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461297c908263ffffffff61201816565b6001600160a01b038316600090815260016020526040812091909155546129a9908263ffffffff61201816565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b03841681612a2057fe5b049392505050565b80820182811015610c10576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe426c61737465727377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54426c61737465727377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54426c61737465727377617056323a20494e53554646494349454e545f4c4951554944495459426c61737465727377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544426c61737465727377617056323a20676f7665726e6f72206973207a65726f2061646472657373426c61737465727377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a7231582096ec6df123763988e5cb3b118d417ecb8eafa20ef1cebb0c41a98800bc24b0d864736f6c63430005100032
Deployed Bytecode Sourcemap
11827:12040:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11827:12040:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20257:1917;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;20257:1917:0;;;;;;;;-1:-1:-1;;;;;20257:1917:0;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;20257:1917:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;20257:1917:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;20257:1917:0;;-1:-1:-1;20257:1917:0;-1:-1:-1;20257:1917:0;:::i;:::-;;1777:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1777:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13418:231;;;:::i;:::-;;;;-1:-1:-1;;;;;13418:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3876:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3876:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12149:21;;;:::i;:::-;;;;-1:-1:-1;;;;;12149:21:0;;;;;;;;;;;;;;12892:74;;;:::i;1919:23::-;;;:::i;:::-;;;;;;;;;;;;;;;;4178:367;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4178:367:0;;;;;;;;;;;;;;;;;:::i;2210:117::-;;;:::i;1877:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12684:96;;;:::i;2067:31::-;;;:::i;13060:88::-;;;:::i;12500:32::-;;;:::i;12539:::-;;;:::i;17297:1255::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17297:1255:0;-1:-1:-1;;;;;17297:1255:0;;:::i;1949:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1949:41:0;-1:-1:-1;;;;;1949:41:0;;:::i;12578:17::-;;;:::i;2334:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2334:38:0;-1:-1:-1;;;;;2334:38:0;;:::i;18664:1481::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18664:1481:0;-1:-1:-1;;;;;18664:1481:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1826:44;;;:::i;4031:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4031:139:0;;;;;;;;:::i;12787:96::-;;;:::i;12973:80::-;;;:::i;11970:46::-;;;:::i;22223:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22223:334:0;-1:-1:-1;;;;;22223:334:0;;:::i;14482:823::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14482:823:0;;;;;;;;;;;;;;;;;;;:::i;12120:22::-;;;:::i;12177:21::-;;;:::i;4553:1002::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;4553:1002:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1997:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1997:61:0;;;;;;;;;;:::i;22606:156::-;;;:::i;20257:1917::-;13224:8;;13236:1;13224:13;13216:47;;;;;-1:-1:-1;;;13216:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:1;13274:8;:12;20371:14;;;;:32;;;20402:1;20389:10;:14;20371:32;20363:86;;;;-1:-1:-1;;;20363:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20461:17;20480;20502:13;:11;:13::i;:::-;20460:55;;;;;20562:9;-1:-1:-1;;;;;20549:22:0;:10;:22;:48;;;;;20588:9;-1:-1:-1;;;;;20575:22:0;:10;:22;20549:48;20541:98;;;;-1:-1:-1;;;20541:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20784:6;;20819;;20652:13;;;;-1:-1:-1;;;;;20784:6:0;;;;20819;;;;20844:13;;;;;;;:30;;;20867:7;-1:-1:-1;;;;;20861:13:0;:2;-1:-1:-1;;;;;20861:13:0;;;20844:30;20836:68;;;;;-1:-1:-1;;;20836:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20919:14;;20915:58;;20935:38;20949:7;20958:2;20962:10;20935:13;:38::i;:::-;21022:14;;21018:58;;21038:38;21052:7;21061:2;21065:10;21038:13;:38::i;:::-;21125:15;;21121:105;;21163:2;-1:-1:-1;;;;;21142:42:0;;21185:10;21197;21209;21221:4;;21142:84;;;;;;;;;;;;;-1:-1:-1;;;;;21142:84:0;-1:-1:-1;;;;;21142:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;21142:84:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21142:84:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21142:84:0;;;;21121:105;21248:40;;;-1:-1:-1;;;21248:40:0;;21282:4;21248:40;;;;;;-1:-1:-1;;;;;21248:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;21248:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21248:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21248:40:0;21310;;;-1:-1:-1;;;21310:40:0;;21344:4;21310:40;;;;;;21248;;-1:-1:-1;;;;;;21310:25:0;;;;;:40;;;;;21248;;21310;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;21310:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21310:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21310:40:0;;-1:-1:-1;21372:14:0;;-1:-1:-1;;;;;;;21400:22:0;;;;;21389:33;;:75;;21463:1;21389:75;;;21449:10;21437:9;-1:-1:-1;;;;;21437:22:0;;21425:8;:35;21389:75;21372:92;;21475:14;21515:10;21503:9;-1:-1:-1;;;;;21503:22:0;;21492:8;:33;:75;;21566:1;21492:75;;;21552:10;21540:9;-1:-1:-1;;;;;21540:22:0;;21528:8;:35;21492:75;21475:92;;21598:1;21586:9;:13;:30;;;;21615:1;21603:9;:13;21586:30;21578:83;;;;-1:-1:-1;;;21578:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21747:21;21771:40;21794:16;:9;21808:1;21794:16;:13;:16;:::i;:::-;21771:18;:8;21784:4;21771:18;:12;:18;:::i;:::-;:22;:40;:22;:40;:::i;:::-;21747:64;-1:-1:-1;21822:21:0;21846:40;21869:16;:9;21883:1;21869:16;:13;:16;:::i;21846:40::-;21822:64;-1:-1:-1;21947:43:0;21982:7;21947:30;-1:-1:-1;;;;;21947:15:0;;;;:30;;;:19;:30;:::i;:::-;:34;:43;:34;:43;:::i;:::-;21905:38;:16;21926;21905:38;:20;:38;:::i;:::-;:85;;21897:114;;;;;-1:-1:-1;;;21897:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13297:1;;22035:49;22043:8;22053;22063:9;22074;22035:7;:49::i;:::-;22100:66;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22100:66:0;;;22105:10;;22100:66;;;;;;;;;-1:-1:-1;;13320:1:0;13309:8;:12;-1:-1:-1;;;;;;;;;20257:1917:0:o;1777:42::-;;;;;;;;;;;;;;;;;;;:::o;13418:231::-;13551:8;;-1:-1:-1;;;;;13551:8:0;;;;-1:-1:-1;;;13582:8:0;;;;;;-1:-1:-1;;;13623:18:0;;;;;13418:231::o;3876:147::-;3940:4;3957:36;3966:10;3978:7;3987:5;3957:8;:36::i;:::-;-1:-1:-1;4011:4:0;3876:147;;;;;:::o;12149:21::-;;;-1:-1:-1;;;;;12149:21:0;;:::o;12892:74::-;12924:42;12892:74;:::o;1919:23::-;;;;:::o;4178:367::-;-1:-1:-1;;;;;4311:15:0;;4290:4;4311:15;;;:9;:15;;;;;;;;4327:10;4311:27;;;;;;;;4347:2;4311:39;4307:172;;-1:-1:-1;;;;;4397:15:0;;;;;;:9;:15;;;;;;;;4413:10;4397:27;;;;;;;;:70;;4447:5;4397:70;:31;:70;:::i;:::-;-1:-1:-1;;;;;4367:15:0;;;;;;:9;:15;;;;;;;;4383:10;4367:27;;;;;;;:100;4307:172;4489:26;4499:4;4505:2;4509:5;4489:9;:26::i;:::-;-1:-1:-1;4533:4:0;4178:367;;;;;:::o;2210:117::-;2261:66;2210:117;:::o;1877:35::-;1910:2;1877:35;:::o;12684:96::-;-1:-1:-1;;;;;12684:96:0;:::o;2067:31::-;;;;:::o;13060:88::-;13106:42;13060:88;:::o;12500:32::-;;;;:::o;12539:::-;;;;:::o;17297:1255::-;17357:14;13224:8;;13236:1;13224:13;13216:47;;;;;-1:-1:-1;;;13216:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:1;13274:8;:12;13369:21;:19;:21::i;:::-;17385:17;17404;17426:13;:11;:13::i;:::-;-1:-1:-1;17488:6:0;;17481:39;;;-1:-1:-1;;;17481:39:0;;17514:4;17481:39;;;;;;17384:55;;-1:-1:-1;17384:55:0;;-1:-1:-1;17465:13:0;;-1:-1:-1;;;;;17488:6:0;;;;17481:24;;:39;;;;;;;;;;;;;;17488:6;17481:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17481:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17481:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17481:39:0;17554:6;;17547:39;;;-1:-1:-1;;;17547:39:0;;17580:4;17547:39;;;;;;17481;;-1:-1:-1;17531:13:0;;-1:-1:-1;;;;;17554:6:0;;;;17547:24;;:39;;;;;17481;;17547;;;;;;;;17554:6;17547:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17547:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17547:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17547:39:0;;-1:-1:-1;17597:12:0;17612:23;:8;-1:-1:-1;;;;;17612:23:0;;;:12;:23;:::i;:::-;17597:38;-1:-1:-1;17646:12:0;17661:23;:8;-1:-1:-1;;;;;17661:23:0;;;:12;:23;:::i;:::-;17646:38;;17697:10;17710:30;17719:9;17730;17710:8;:30::i;:::-;17751:17;17771:11;17697:43;;-1:-1:-1;17875:17:0;17871:352;;17921:54;12011:5;17921:31;17931:20;:7;17943;17931:20;:11;:20;:::i;:::-;17921:9;:31::i;:54::-;17909:66;;17989:36;18003:1;12011:5;17989;:36::i;:::-;17871:352;;;18125:86;-1:-1:-1;;;;;18134:37:0;;:25;:7;18146:12;18134:25;:11;:25;:::i;:::-;:37;;;;;;-1:-1:-1;;;;;18173:37:0;;:25;:7;18185:12;18173:25;:11;:25;:::i;:::-;:37;;;;;;18125:8;:86::i;:::-;18113:98;;17871:352;18253:1;18241:9;:13;18233:70;;;;-1:-1:-1;;;18233:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18314:20;18320:2;18324:9;18314:5;:20::i;:::-;18347:49;18355:8;18365;18375:9;18386;18347:7;:49::i;:::-;18411:5;18407:47;;;18445:8;;18426:28;;-1:-1:-1;;;;;18431:8:0;;;;-1:-1:-1;;;18445:8:0;;;18426:28;:18;:28;:::i;:::-;18418:5;:36;18407:47;18510:34;;;;;;;;;;;;;;18515:10;;18510:34;;;;;;;;-1:-1:-1;;13320:1:0;13309:8;:12;-1:-1:-1;17297:1255:0;;;-1:-1:-1;;;;;;17297:1255:0:o;1949:41::-;;;;;;;;;;;;;:::o;12578:17::-;;;;:::o;2334:38::-;;;;;;;;;;;;;:::o;18664:1481::-;18724:12;18738;13224:8;;13236:1;13224:13;13216:47;;;;;-1:-1:-1;;;13216:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:1;13274:8;:12;13369:21;:19;:21::i;:::-;18764:17;18783;18805:13;:11;:13::i;:::-;-1:-1:-1;18862:6:0;;18943;;19022:40;;;-1:-1:-1;;;19022:40:0;;19056:4;19022:40;;;;;;18763:55;;-1:-1:-1;18763:55:0;;-1:-1:-1;;;;;;18862:6:0;;;;18943;;;18844:15;;18862:6;;19022:25;;:40;;;;;;;;;;;;;;18862:6;19022:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19022:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19022:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19022:40:0;19089;;;-1:-1:-1;;;19089:40:0;;19123:4;19089:40;;;;;;19022;;-1:-1:-1;19073:13:0;;-1:-1:-1;;;;;19089:25:0;;;;;:40;;;;;19022;;19089;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19089:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19089:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19089:40:0;19175:4;19140:14;19157:24;;;:9;19089:40;19157:24;;;;;19089:40;;-1:-1:-1;19207:30:0;19216:9;19227;19207:8;:30::i;:::-;19248:17;19268:11;19194:43;;-1:-1:-1;19268:11:0;19378:23;:9;19392:8;19378:23;:13;:23;:::i;:::-;:38;;;;;;;-1:-1:-1;19511:12:0;19485:23;:9;19499:8;19485:23;:13;:23;:::i;:::-;:38;;;;;;19475:48;;19600:1;19590:7;:11;:26;;;;;19615:1;19605:7;:11;19590:26;19582:83;;;;-1:-1:-1;;;19582:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19676:31;19690:4;19697:9;19676:5;:31::i;:::-;19718:35;19732:7;19741:2;19745:7;19718:13;:35::i;:::-;19764;19778:7;19787:2;19791:7;19764:13;:35::i;:::-;19821:40;;;-1:-1:-1;;;19821:40:0;;19855:4;19821:40;;;;;;-1:-1:-1;;;;;19821:25:0;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19821:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19821:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19821:40:0;19883;;;-1:-1:-1;;;19883:40:0;;19917:4;19883:40;;;;;;19821;;-1:-1:-1;;;;;;19883:25:0;;;;;:40;;;;;19821;;19883;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;19883:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19883:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19883:40:0;;-1:-1:-1;19936:49:0;19944:8;19883:40;19964:9;19975;19936:7;:49::i;:::-;20000:5;19996:47;;;20034:8;;20015:28;;-1:-1:-1;;;;;20020:8:0;;;;-1:-1:-1;;;20034:8:0;;;20015:28;:18;:28;:::i;:::-;20007:5;:36;19996:47;20099:38;;;;;;;;;;;;;;-1:-1:-1;;;;;20099:38:0;;;20104:10;;20099:38;;;;;;;;;;;13401:1;;;;;;;;;13320;13309:8;:12;;;;18664:1481;;;:::o;1826:44::-;;;;;;;;;;;;;;;;;;;:::o;4031:139::-;4091:4;4108:32;4118:10;4130:2;4134:5;4108:9;:32::i;12787:96::-;-1:-1:-1;;;;;12787:96:0;:::o;12973:80::-;13011:42;12973:80;:::o;11970:46::-;12011:5;11970:46;:::o;22223:334::-;13224:8;;13236:1;13224:13;13216:47;;;;;-1:-1:-1;;;13216:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:1;13274:8;:12;22292:6;;22342;;22446:8;;22401:40;;;-1:-1:-1;;;22401:40:0;;22435:4;22401:40;;;;;;-1:-1:-1;;;;;22292:6:0;;;;22342;;;;22374:82;;22292:6;;22397:2;;22401:54;;-1:-1:-1;;;;;22446:8:0;;22292:6;;22401:25;;:40;;;;;;;;;;;;;;;22292:6;22401:40;;;5:2:-1;;;;30:1;27;20:12;5:2;22401:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22401:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22401:40:0;;:54;:44;:54;:::i;:::-;22374:13;:82::i;:::-;22539:8;;22494:40;;;-1:-1:-1;;;22494:40:0;;22528:4;22494:40;;;;;;22467:82;;22481:7;;22490:2;;22494:54;;-1:-1:-1;;;22539:8:0;;-1:-1:-1;;;;;22539:8:0;;-1:-1:-1;;;;;22494:25:0;;;;;:40;;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;22467:82:0;-1:-1:-1;;13320:1:0;13309:8;:12;-1:-1:-1;22223:334:0:o;14482:823::-;14597:7;;-1:-1:-1;;;;;14597:7:0;14583:10;:21;14575:58;;;;;-1:-1:-1;;;14575:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14672:23:0;;14664:75;;;;-1:-1:-1;;;14664:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14752:6;:16;;-1:-1:-1;;;;;14752:16:0;;;;;;;;;;;14779:6;:16;;;;;;;;;;;;;;;14808:70;;;;;;13106:42;14808:70;;;;;;13011:42;;14808:49;;:70;;;;;14752:6;;14808:70;;;;;;;14752:6;13011:42;14808:70;;;5:2:-1;;;;30:1;27;20:12;5:2;14808:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14808:70:0;;;;14891:13;12924:42;14891:29;;14931:6;-1:-1:-1;;;;;14931:28:0;;:30;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14931:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14931:30:0;;;;14972:6;-1:-1:-1;;;;;14972:24:0;;14997:9;14972:35;;;;;;;;;;;;;-1:-1:-1;;;;;14972:35:0;-1:-1:-1;;;;;14972:35:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14972:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15024:6:0;;-1:-1:-1;;;;;15024:6:0;-1:-1:-1;;;;;15024:23:0;;-1:-1:-1;15024:23:0;;-1:-1:-1;15024:50:0;;-1:-1:-1;15051:6:0;;-1:-1:-1;;;;;15051:6:0;-1:-1:-1;;;;;15051:23:0;15024:50;15020:133;;;15091:50;;;;;-1:-1:-1;;;;;12737:42:0;15091:14;;15106:34;;15091:50;;;15106:34;15091:50;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15091:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15091:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;15020:133:0;15169:6;;-1:-1:-1;;;;;15169:6:0;-1:-1:-1;;;;;15169:23:0;;:50;;-1:-1:-1;15196:6:0;;-1:-1:-1;;;;;15196:6:0;-1:-1:-1;;;;;15196:23:0;15169:50;15165:133;;;15236:50;;;;;-1:-1:-1;;;;;12840:42:0;15236:14;;15251:34;;15236:50;;;15251:34;15236:50;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15236:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15236:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;15165:133:0;14482:823;;;;:::o;12120:22::-;;;-1:-1:-1;;;;;12120:22:0;;:::o;12177:21::-;;;-1:-1:-1;;;;;12177:21:0;;:::o;4553:1002::-;4769:15;4757:8;:27;;4749:62;;;;;-1:-1:-1;;;4749:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4927:16;;-1:-1:-1;;;;;5171:13:0;;;4822:14;5171:13;;;:6;:13;;;;;;;;:15;;;;;;;;;4994:250;;2261:66;4994:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4994:250:0;;;;;4962:301;;;;;;4863:415;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;4863:415:0;;;;;;4839:450;;;;;;;;;5327:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4822:14;;5171:15;5327:26;;;;;-1:-1:-1;;5327:26:0;;;;;;;;;;5171:15;5327:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5327:26:0;;-1:-1:-1;;5327:26:0;;;-1:-1:-1;;;;;;;5386:30:0;;;;;;:59;;;5440:5;-1:-1:-1;;;;;5420:25:0;:16;-1:-1:-1;;;;;5420:25:0;;5386:59;5364:141;;;;;-1:-1:-1;;;5364:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5516:31;5525:5;5532:7;5541:5;5516:8;:31::i;:::-;4553:1002;;;;;;;;;:::o;1997:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22606:156::-;13224:8;;13236:1;13224:13;13216:47;;;;;-1:-1:-1;;;13216:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:1;13274:8;:12;22660:6;;22653:39;;;-1:-1:-1;;;22653:39:0;;22686:4;22653:39;;;;;;22645:109;;-1:-1:-1;;;;;22660:6:0;;22653:24;;:39;;;;;;;;;;;;;;22660:6;22653:39;;;5:2:-1;;;;30:1;27;20:12;5:2;22653:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22653:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22653:39:0;22701:6;;22694:39;;;-1:-1:-1;;;22694:39:0;;22727:4;22694:39;;;;;;-1:-1:-1;;;;;22701:6:0;;;;22694:24;;:39;;;;;22653;;22694;;;;;;;;22701:6;22694:39;;;5:2:-1;;;;30:1;27;20:12;5:2;22694:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22694:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22694:39:0;22735:8;;-1:-1:-1;;;;;22735:8:0;;;;-1:-1:-1;;;22745:8:0;;;22645:7;:109::i;:::-;13320:1;13309:8;:12;22606:156::o;13657:291::-;12075:34;;;;;;;;;;;;;;;;;13785:43;;-1:-1:-1;;;;;13785:43:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;13785:43:0;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;13785:43:0;179:29:-1;160:49;;13774:55:0;;;;13739:12;;13753:17;;13774:10;;;13785:43;13774:55;;;25:18:-1;13774:55:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13774:55:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;13738:91:0;;;;13848:7;:57;;;;-1:-1:-1;13860:11:0;;:16;;:44;;;13891:4;13880:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13880:24:0;13860:44;13840:100;;;;;-1:-1:-1;;;13840:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13657:291;;;;;:::o;1538:142::-;1590:6;1617;;;:30;;-1:-1:-1;;1632:5:0;;;1646:1;1641;1632:5;1641:1;1627:15;;;;;:20;1617:30;1609:63;;;;;-1:-1:-1;;;1609:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:129;1485:5;;;1480:16;;;;1472:50;;;;;-1:-1:-1;;;1472:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15390:864;-1:-1:-1;;;;;15502:23:0;;;;;:50;;-1:-1:-1;;;;;;15529:23:0;;;15502:50;15494:86;;;;;-1:-1:-1;;;15494:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15695:18;;15622:23;:15;:23;;;-1:-1:-1;;;15695:18:0;;;;15678:35;;;15751:15;;;;;;:33;;-1:-1:-1;;;;;;15770:14:0;;;;15751:33;:51;;;;-1:-1:-1;;;;;;15788:14:0;;;;15751:51;15747:336;;;15957:11;15904:64;;15909:44;15943:9;15909:27;15926:9;15909:16;:27::i;:::-;-1:-1:-1;;;;;15909:33:0;;:44;:33;:44;:::i;:::-;15880:20;:88;;-1:-1:-1;;;;;15904:50:0;;;;:64;;;;15880:88;;;16007:64;;;16012:44;16046:9;16012:27;16029:9;16012:16;:27::i;:44::-;15983:20;:88;;-1:-1:-1;;;;;16007:50:0;;;;:64;;;;15983:88;;;15747:336;16093:8;:28;;;;-1:-1:-1;;;;;16093:28:0;;;;;;;16132;;-1:-1:-1;;;16132:28:0;;;;;;;;;-1:-1:-1;;;;;16171:35:0;-1:-1:-1;;;16171:35:0;;;;;;;;;16222:24;;;16227:8;;;16222:24;;16237:8;;;;;;;16222:24;;;;;;;;;;;;;;;;;15390:864;;;;;;:::o;3471:169::-;-1:-1:-1;;;;;3552:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;3601:31;;;;;;;;;;;;;;;;;3471:169;;;:::o;3648:220::-;-1:-1:-1;;;;;3742:15:0;;;;;;:9;:15;;;;;;:26;;3762:5;3742:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;3724:15:0;;;;;;;:9;:15;;;;;;:44;;;;3795:13;;;;;;;:24;;3813:5;3795:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;3779:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;3835:25;;;;;;;3779:13;;3835:25;;;;;;;;;;;;;3648:220;;;:::o;22770:1094::-;22899:6;;22821:25;;;;-1:-1:-1;;;;;22899:6:0;-1:-1:-1;;;;;22899:23:0;;:50;;-1:-1:-1;22926:6:0;;-1:-1:-1;;;;;22926:6:0;-1:-1:-1;;;;;22926:23:0;22899:50;22895:224;;;22992:38;;;;;;23024:4;22992:38;;;;;;22966:23;;-1:-1:-1;;;;;12737:42:0;22992:23;;:38;;;;;;;;;;;;;;;12737:42;22992:38;;;5:2:-1;;;;30:1;27;20:12;5:2;22992:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22992:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22992:38:0;23065:42;;;;;;23084:4;23065:42;;;;;;;;;;;;22992:38;;-1:-1:-1;;;;;;12737:42:0;23065:10;;:42;;;;;22992:38;;23065:42;;;;;;;;-1:-1:-1;12737:42:0;23065;;;5:2:-1;;;;30:1;27;20:12;5:2;23065:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23065:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23065:42:0;;-1:-1:-1;;22895:224:0;23135:6;;-1:-1:-1;;;;;23135:6:0;-1:-1:-1;;;;;23135:23:0;;:50;;-1:-1:-1;23162:6:0;;-1:-1:-1;;;;;23162:6:0;-1:-1:-1;;;;;23162:23:0;23135:50;23131:224;;;23228:38;;;;;;23260:4;23228:38;;;;;;23202:23;;-1:-1:-1;;;;;12840:42:0;23228:23;;:38;;;;;;;;;;;;;;;12840:42;23228:38;;;5:2:-1;;;;30:1;27;20:12;5:2;23228:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23228:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23228:38:0;23301:42;;;;;;23320:4;23301:42;;;;;;;;;;;;23228:38;;-1:-1:-1;;;;;;12840:42:0;23301:10;;:42;;;;;23228:38;;23301:42;;;;;;;;-1:-1:-1;12840:42:0;23301;;;5:2:-1;;;;30:1;27;20:12;5:2;23301:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23301:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23301:42:0;;-1:-1:-1;;23131:224:0;23383:8;;23443:6;;-1:-1:-1;;;;;23383:8:0;;;;-1:-1:-1;;;23418:8:0;;;;-1:-1:-1;;;;;23443:6:0;-1:-1:-1;;;;;23443:21:0;23439:173;;;23481:29;;;;23439:173;;;23532:6;;-1:-1:-1;;;;;23532:6:0;-1:-1:-1;;;;;23532:23:0;23528:84;;;23571:29;;;;23528:84;23628:6;;-1:-1:-1;;;;;23628:6:0;-1:-1:-1;;;;;23628:21:0;23624:173;;;23666:29;;23624:173;;;23717:6;;-1:-1:-1;;;;;23717:6:0;-1:-1:-1;;;;;23717:23:0;23713:84;;;23756:29;;23713:84;23837:8;;23809:47;;23817:8;;23827;;-1:-1:-1;;;;;23837:8:0;;;;-1:-1:-1;;;23847:8:0;;;23809:7;:47::i;16344:841::-;16417:10;16440:13;16478:7;;;;;;;;;-1:-1:-1;;;;;16478:7:0;-1:-1:-1;;;;;16456:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16456:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16456:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16456:38:0;16557:5;;-1:-1:-1;;;;;16513:19:0;;;;;;-1:-1:-1;16456:38:0;;-1:-1:-1;16557:5:0;16588:590;;16618:11;;16614:494;;16650:10;16663:41;16673:30;-1:-1:-1;;;;;16673:15:0;;;;:30;;;:19;:30;:::i;16663:41::-;16650:54;;16723:14;16740:17;16750:6;16740:9;:17::i;:::-;16723:34;;16788:9;16780:5;:17;16776:317;;;16822:14;16839:37;16855:20;:5;16865:9;16855:20;:9;:20;:::i;:::-;16839:11;;;:37;:15;:37;:::i;:::-;16822:54;-1:-1:-1;16899:16:0;16918:27;16935:9;16918:12;:5;16928:1;16918:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;16899:46;;16968:14;16997:11;16985:9;:23;;;;;;;-1:-1:-1;17035:13:0;;17031:42;;17050:23;17056:5;17063:9;17050:5;:23::i;:::-;16776:317;;;;16614:494;;;16588:590;;;17129:11;;17125:53;;17165:1;17157:5;:9;17125:53;16344:841;;;;;;:::o;11105:303::-;11150:6;11177:1;11173;:5;11169:232;;;-1:-1:-1;11199:1:0;11232;11228;11224:5;;:9;11248:92;11259:1;11255;:5;11248:92;;;11285:1;11281:5;;11323:1;11318;11314;11310;:5;;;;;;:9;11309:15;;;;;;11305:19;;11248:92;;;11169:232;;;;11361:6;;11357:44;;-1:-1:-1;11388:1:0;11357:44;11105:303;;;:::o;3045:201::-;3118:11;;:22;;3134:5;3118:22;:15;:22;:::i;:::-;3104:11;:36;;;-1:-1:-1;;;;;3167:13:0;;;;:9;:13;;;;;;:24;;3185:5;3167:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;3151:13:0;;;;;;:9;:13;;;;;;;;:40;;;;3207:31;;;;;;;3151:13;;;;3207:31;;;;;;;;;;3045:201;;:::o;10891:96::-;10943:6;10970:1;10966;:5;:13;;10978:1;10966:13;;;10974:1;10966:13;10962:17;10891:96;-1:-1:-1;;;10891:96:0:o;3254:209::-;-1:-1:-1;;;;;3333:15:0;;;;;;:9;:15;;;;;;:26;;3353:5;3333:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;3315:15:0;;;;;;:9;:15;;;;;:44;;;;3384:11;:22;;3400:5;3384:22;:15;:22;:::i;:::-;3370:11;:36;;;3422:33;;;;;;;;-1:-1:-1;;;;;3422:33:0;;;;;;;;;;;;;3254:209;;:::o;11521:120::-;-1:-1:-1;;;;;11597:10:0;-1:-1:-1;;;11597:17:0;;11521:120::o;11712:108::-;11772:9;-1:-1:-1;;;;;11802:10:0;;-1:-1:-1;;;;;11798:14:0;;11802:10;11798:14;;;;;;11712:108;-1:-1:-1;;;11712:108:0:o;1265:128::-;1349:5;;;1344:16;;;;1336:49;;;;;-1:-1:-1;;;1336:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://96ec6df123763988e5cb3b118d417ecb8eafa20ef1cebb0c41a98800bc24b0d8
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.