Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 48 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Get Rewards | 24592571 | 4 days ago | IN | 0 ETH | 0.00000411 | ||||
| Get Rewards | 23963743 | 92 days ago | IN | 0 ETH | 0.00005987 | ||||
| Get Rewards | 23553714 | 150 days ago | IN | 0 ETH | 0.00005264 | ||||
| Get Rewards | 23405446 | 170 days ago | IN | 0 ETH | 0.00000543 | ||||
| Get Rewards | 23404227 | 171 days ago | IN | 0 ETH | 0.00000794 | ||||
| Get Rewards | 23403049 | 171 days ago | IN | 0 ETH | 0.00000619 | ||||
| Get Rewards | 23379327 | 174 days ago | IN | 0 ETH | 0.00000398 | ||||
| Get Rewards | 23320977 | 182 days ago | IN | 0 ETH | 0.00000641 | ||||
| Get Rewards | 23320078 | 182 days ago | IN | 0 ETH | 0.00002334 | ||||
| Get Rewards | 23311400 | 184 days ago | IN | 0 ETH | 0.0000139 | ||||
| Get Rewards | 15114306 | 1339 days ago | IN | 0 ETH | 0.00020577 | ||||
| Withdraw | 13960962 | 1522 days ago | IN | 0 ETH | 0.03593289 | ||||
| Withdraw | 13957219 | 1523 days ago | IN | 0 ETH | 0.02976608 | ||||
| Withdraw | 13951668 | 1524 days ago | IN | 0 ETH | 0.01947989 | ||||
| Get Rewards | 13951668 | 1524 days ago | IN | 0 ETH | 0.01956196 | ||||
| Withdraw | 13920140 | 1528 days ago | IN | 0 ETH | 0.01838848 | ||||
| Withdraw | 13919842 | 1529 days ago | IN | 0 ETH | 0.01692757 | ||||
| Deposit | 13919230 | 1529 days ago | IN | 0 ETH | 0.01572091 | ||||
| Deposit | 13909454 | 1530 days ago | IN | 0 ETH | 0.02107489 | ||||
| Get Rewards | 13880018 | 1535 days ago | IN | 0 ETH | 0.00110923 | ||||
| Withdraw | 13878981 | 1535 days ago | IN | 0 ETH | 0.01440868 | ||||
| Withdraw | 13871455 | 1536 days ago | IN | 0 ETH | 0.02213195 | ||||
| Withdraw | 13870641 | 1536 days ago | IN | 0 ETH | 0.02359155 | ||||
| Deposit | 13866038 | 1537 days ago | IN | 0 ETH | 0.01516481 | ||||
| Deposit | 13850060 | 1539 days ago | IN | 0 ETH | 0.01794429 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StakingRewardsV3
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-11-25
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;
library Math {
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a >= b ? a : b;
}
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
}
library PoolAddress {
bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
struct PoolKey {
address token0;
address token1;
uint24 fee;
}
function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {
require(key.token0 < key.token1);
pool = address(
uint160(uint256(
keccak256(
abi.encodePacked(
hex'ff',
factory,
keccak256(abi.encode(key.token0, key.token1, key.fee)),
POOL_INIT_CODE_HASH
)
)
)
));
}
}
interface erc20 {
function transfer(address recipient, uint amount) external returns (bool);
function transferFrom(address sender, address recipient, uint amount) external returns (bool);
function balanceOf(address) external view returns (uint);
}
interface PositionManagerV3 {
struct CollectParams {
uint256 tokenId;
address recipient;
uint128 amount0Max;
uint128 amount1Max;
}
function positions(uint256 tokenId)
external
view
returns (
uint96 nonce,
address operator,
address token0,
address token1,
uint24 fee,
int24 tickLower,
int24 tickUpper,
uint128 liquidity,
uint256 feeGrowthInside0LastX128,
uint256 feeGrowthInside1LastX128,
uint128 tokensOwed0,
uint128 tokensOwed1
);
function safeTransferFrom(address from, address to, uint tokenId) external;
function ownerOf(uint tokenId) external view returns (address);
function transferFrom(address from, address to, uint tokenId) external;
function collect(CollectParams calldata params) external payable returns (uint amount0, uint amount1);
}
interface UniV3 {
function snapshotCumulativesInside(int24 tickLower, int24 tickUpper)
external
view
returns (
int56 tickCumulativeInside,
uint160 secondsPerLiquidityInsideX128,
uint32 secondsInside
);
function slot0() external view returns (uint160, int24, uint16, uint16, uint16, uint8, bool);
}
contract StakingRewardsV3 {
address immutable public reward;
address immutable public pool;
address constant factory = 0x1F98431c8aD98523631AE4a59f267346ea31F984;
PositionManagerV3 constant nftManager = PositionManagerV3(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
uint constant DURATION = 7 days;
uint constant PRECISION = 10 ** 18;
uint rewardRate;
uint periodFinish;
uint lastUpdateTime;
uint rewardPerLiquidityStored;
uint public forfeit;
mapping(uint => uint) public tokenRewardPerLiquidityPaid;
mapping(uint => uint) public rewards;
address public governance;
address public nextGovernance;
uint public delayGovernance;
address public rewarder;
address public treasury;
address public nextTreasury;
uint public delayTreasury;
uint32 constant DELAY = 1 days;
struct time {
uint32 timestamp;
uint32 secondsInside;
}
mapping(uint => time) public elapsed;
mapping(uint => address) public owners;
mapping(address => uint[]) public tokenIds;
mapping(uint => uint) public liquidityOf;
uint public totalLiquidity;
uint public earned0;
uint public earned1;
event RewardPaid(address indexed sender, uint tokenId, uint reward);
event RewardAdded(address indexed sender, uint reward);
event Deposit(address indexed sender, uint tokenId, uint liquidity);
event Withdraw(address indexed sender, uint tokenId, uint liquidity);
event Collect(address indexed sender, uint tokenId, uint amount0, uint amount1);
event Governance(address indexed previous, address indexed current, uint timestamp);
event Treasury(address indexed previous, address indexed current, uint timestamp);
constructor(address _reward, address _pool, address _governance, address _treasury, address _rewarder) {
reward = _reward;
pool = _pool;
governance = _governance;
treasury = _treasury;
rewarder = _rewarder;
}
modifier onlyGovernance() {
require(msg.sender == governance);
_;
}
modifier onlyRewarder() {
require(msg.sender == rewarder);
_;
}
function setRewarder(address _rewarder) external onlyGovernance {
rewarder = _rewarder;
}
function setGovernance(address _governance) external onlyGovernance {
nextGovernance = _governance;
delayGovernance = block.timestamp + DELAY;
}
function acceptGovernance() external {
require(msg.sender == nextGovernance && delayGovernance < block.timestamp);
emit Governance(governance, nextGovernance, block.timestamp);
governance = nextGovernance;
}
function setTreasury(address _treasury) external onlyGovernance {
nextTreasury = _treasury;
delayTreasury = block.timestamp + DELAY;
}
function commitTreasury() external onlyGovernance {
require(delayTreasury < block.timestamp);
emit Treasury(treasury, nextTreasury, block.timestamp);
treasury = nextTreasury;
}
function getTokenIdsLength(address _owner) external view returns (uint) {
return tokenIds[_owner].length;
}
function getTokenIds(address _owner) external view returns (uint[] memory) {
return tokenIds[_owner];
}
function lastTimeRewardApplicable() public view returns (uint) {
return Math.min(block.timestamp, periodFinish);
}
function rewardPerLiquidity() public view returns (uint) {
if (totalLiquidity == 0) {
return rewardPerLiquidityStored;
}
return rewardPerLiquidityStored + ((lastTimeRewardApplicable() - lastUpdateTime) * rewardRate * PRECISION / totalLiquidity);
}
function collect(uint[] memory tokenId) external {
for (uint i = 0; i < tokenId.length; i++) {
_collect(tokenId[i]);
}
}
function _collect(uint tokenId) internal {
if (owners[tokenId] != address(0)) {
PositionManagerV3.CollectParams memory _claim = PositionManagerV3.CollectParams(tokenId, treasury, type(uint128).max, type(uint128).max);
(uint amount0, uint amount1) = nftManager.collect(_claim);
earned0 += amount0;
earned1 += amount1;
emit Collect(msg.sender, tokenId, amount0, amount1);
}
}
function earned(uint tokenId) public view returns (uint claimable, uint32 secondsInside, uint forfeited) {
(,,,,,int24 _tickLower,int24 _tickUpper,,,,,) = nftManager.positions(tokenId);
(,,secondsInside) = UniV3(pool).snapshotCumulativesInside(_tickLower, _tickUpper);
uint _liquidity = liquidityOf[tokenId];
time memory _elapsed = elapsed[tokenId];
uint _maxSecondsElapsed = lastTimeRewardApplicable() - Math.min(_elapsed.timestamp, periodFinish);
if (_maxSecondsElapsed > 0) {
uint _secondsInside = Math.min(_maxSecondsElapsed, (secondsInside - _elapsed.secondsInside));
uint _reward = (_liquidity * (rewardPerLiquidity() - tokenRewardPerLiquidityPaid[tokenId]) / PRECISION);
uint _earned = _reward * _secondsInside / _maxSecondsElapsed;
forfeited = _reward - _earned;
claimable = _earned;
}
claimable += rewards[tokenId];
}
function getRewardForDuration() external view returns (uint) {
return rewardRate * DURATION;
}
function deposit(uint tokenId) external update(tokenId) {
(,,address token0,address token1,uint24 fee,int24 tickLower,int24 tickUpper,uint128 _liquidity,,,,) = nftManager.positions(tokenId);
address _pool = PoolAddress.computeAddress(factory,PoolAddress.PoolKey({token0: token0, token1: token1, fee: fee}));
require(pool == _pool);
require(_liquidity > 0);
(,int24 _tick,,,,,) = UniV3(_pool).slot0();
require(tickLower <= _tick && _tick <= tickUpper);
nftManager.transferFrom(msg.sender, address(this), tokenId);
owners[tokenId] = msg.sender;
tokenIds[msg.sender].push(tokenId);
liquidityOf[tokenId] = _liquidity;
totalLiquidity += _liquidity;
emit Deposit(msg.sender, tokenId, _liquidity);
}
function _findIndex(uint[] memory array, uint element) internal pure returns (uint i) {
for (i = 0; i < array.length; i++) {
if (array[i] == element) {
break;
}
}
}
function _remove(uint[] storage array, uint element) internal {
uint _index = _findIndex(array, element);
uint _length = array.length;
if (_index >= _length) return;
if (_index < _length-1) {
array[_index] = array[_length-1];
}
array.pop();
}
function withdraw(uint tokenId) public update(tokenId) {
_collect(tokenId);
_withdraw(tokenId);
}
function _withdraw(uint tokenId) internal {
require(owners[tokenId] == msg.sender);
uint _liquidity = liquidityOf[tokenId];
liquidityOf[tokenId] = 0;
totalLiquidity -= _liquidity;
owners[tokenId] = address(0);
_remove(tokenIds[msg.sender], tokenId);
nftManager.transferFrom(address(this), msg.sender, tokenId);
delete elapsed[tokenId];
emit Withdraw(msg.sender, tokenId, _liquidity);
}
function getRewards() external {
uint[] memory _tokens = tokenIds[msg.sender];
for (uint i = 0; i < _tokens.length; i++) {
getReward(_tokens[i]);
}
}
function getReward(uint tokenId) public update(tokenId) {
_collect(tokenId);
uint _reward = rewards[tokenId];
if (_reward > 0) {
rewards[tokenId] = 0;
_safeTransfer(reward, _getRecipient(tokenId), _reward);
emit RewardPaid(msg.sender, tokenId, _reward);
}
}
function _getRecipient(uint tokenId) internal view returns (address) {
if (owners[tokenId] != address(0)) {
return owners[tokenId];
} else {
return nftManager.ownerOf(tokenId);
}
}
function withdraw() external {
uint[] memory _tokens = tokenIds[msg.sender];
for (uint i = 0; i < _tokens.length; i++) {
withdraw(_tokens[i]);
}
}
function deposit_reward_token(address token, uint _reward) external {
require(token == reward);
notify(_reward);
}
function notify(uint amount) public onlyRewarder update(0) {
if (block.timestamp >= periodFinish) {
rewardRate = amount / DURATION;
} else {
uint _remaining = periodFinish - block.timestamp;
uint _leftover = _remaining * rewardRate;
rewardRate = (amount + _leftover) / DURATION;
}
lastUpdateTime = block.timestamp;
periodFinish = block.timestamp + DURATION;
_safeTransferFrom(reward, msg.sender, address(this), amount);
emit RewardAdded(msg.sender, amount);
}
function refund() external onlyGovernance {
uint _forfeit = forfeit;
forfeit = 0;
_safeTransfer(reward, treasury, _forfeit);
}
modifier update(uint tokenId) {
uint _rewardPerLiquidityStored = rewardPerLiquidity();
uint _lastUpdateTime = lastTimeRewardApplicable();
rewardPerLiquidityStored = _rewardPerLiquidityStored;
lastUpdateTime = _lastUpdateTime;
if (tokenId != 0) {
(uint _reward, uint32 _secondsInside, uint _forfeited) = earned(tokenId);
tokenRewardPerLiquidityPaid[tokenId] = _rewardPerLiquidityStored;
rewards[tokenId] = _reward;
forfeit += _forfeited;
if (elapsed[tokenId].timestamp < _lastUpdateTime) {
elapsed[tokenId] = time(uint32(_lastUpdateTime), _secondsInside);
}
}
_;
}
function _safeTransfer(address token, address to, uint256 value) internal {
(bool success, bytes memory data) =
token.call(abi.encodeWithSelector(erc20.transfer.selector, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))));
}
function _safeTransferFrom(address token, address from, address to, uint256 value) internal {
(bool success, bytes memory data) =
token.call(abi.encodeWithSelector(erc20.transferFrom.selector, from, to, value));
require(success && (data.length == 0 || abi.decode(data, (bool))));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_reward","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_governance","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_rewarder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"current","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Governance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"current","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Treasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenId","type":"uint256[]"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"commitTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delayGovernance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"deposit_reward_token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"claimable","type":"uint256"},{"internalType":"uint32","name":"secondsInside","type":"uint32"},{"internalType":"uint256","name":"forfeited","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earned0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earned1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"elapsed","outputs":[{"internalType":"uint32","name":"timestamp","type":"uint32"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getTokenIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getTokenIdsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"liquidityOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenRewardPerLiquidityPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c06040523480156200001157600080fd5b506040516200245b3803806200245b83398101604081905262000034916200009e565b6001600160a01b0394851660805292841660a052600780549285166001600160a01b0319938416179055600b8054918516918316919091179055600a80549290931691161790556200010e565b80516001600160a01b03811681146200009957600080fd5b919050565b600080600080600060a08688031215620000b757600080fd5b620000c28662000081565b9450620000d26020870162000081565b9350620000e26040870162000081565b9250620000f26060870162000081565b9150620001026080870162000081565b90509295509295909350565b60805160a0516122fd6200015e6000396000818161030901528181610bdc015261128b01526000818161034b0152818161077501528181610df501528181610e370152610ff001526122fd6000f3fe608060405234801561001057600080fd5b506004361061023c5760003560e01c806354021a8b1161013b578063ab033ea9116100b8578063ed7b686e1161007c578063ed7b686e14610556578063f0f442601461055f578063f301af4214610572578063f3d86e4a14610592578063f570cb7e1461059b57600080fd5b8063ab033ea9146104f4578063b6b55f2514610507578063d004b0361461051a578063d6ccdb221461053a578063dcc3e06e1461054357600080fd5b806361d027b3116100ff57806361d027b3146104aa57806380faa57d146104bd5780638ed42500146104c557806393f7aa67146104ce57806398d078b4146104e157600080fd5b806354021a8b1461040d57806357f46cbe1461045c578063590e1ae31461046f5780635aa6e675146104775780635f49a32c1461048a57600080fd5b8063228cb733116101c95780633ccfd60b1161018d5780633ccfd60b146103ae5780633de419e9146103b657806341d86d00146103c95780634d6ed8c4146103d157806351d201d81461040457600080fd5b8063228cb73314610346578063238efcbc1461036d5780632e1a7d4d14610375578063377f3300146103885780633a6462e41461039b57600080fd5b806311e904e31161021057806311e904e3146102d257806315770f92146102fb57806316f0115b146103045780631c1f78eb1461032b5780631c4b774b1461033357600080fd5b806274f27f1461024157806301f5d02e14610271578063025e7c271461029f5780630572b0cc146102c8575b600080fd5b600854610254906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61029161027f366004611d79565b60056020526000908152604090205481565b604051908152602001610268565b6102546102ad366004611d79565b600f602052600090815260409020546001600160a01b031681565b6102d06105a3565b005b6102916102e0366004611da7565b6001600160a01b031660009081526010602052604090205490565b61029160125481565b6102547f000000000000000000000000000000000000000000000000000000000000000081565b610291610645565b6102d0610341366004611d79565b61065d565b6102547f000000000000000000000000000000000000000000000000000000000000000081565b6102d06107e6565b6102d0610383366004611d79565b610877565b600c54610254906001600160a01b031681565b6102d06103a9366004611da7565b610975565b6102d06109ae565b6102916103c4366004611dc4565b610a4c565b6102d0610a7d565b6103e46103df366004611d79565b610b0f565b6040805193845263ffffffff909216602084015290820152606001610268565b61029160095481565b61043f61041b366004611d79565b600e6020526000908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610268565b6102d061046a366004611e06565b610d8c565b6102d0610dcc565b600754610254906001600160a01b031681565b610291610498366004611d79565b60116020526000908152604090205481565b600b54610254906001600160a01b031681565b610291610e27565b61029160145481565b6102d06104dc366004611dc4565b610e35565b6102d06104ef366004611d79565b610e78565b6102d0610502366004611da7565b611053565b6102d0610515366004611d79565b611098565b61052d610528366004611da7565b6114fa565b6040516102689190611ec4565b61029160135481565b600a54610254906001600160a01b031681565b610291600d5481565b6102d061056d366004611da7565b611566565b610291610580366004611d79565b60066020526000908152604090205481565b61029160045481565b6102916115ab565b336000908152601060209081526040808320805482518185028101850190935280835291929091908301828280156105fa57602002820191906000526020600020905b8154815260200190600101908083116105e6575b5050505050905060005b81518110156106415761062f82828151811061062257610622611f08565b602002602001015161065d565b8061063981611f34565b915050610604565b5050565b600062093a806000546106589190611f4f565b905090565b8060006106686115ab565b90506000610674610e27565b600383905560028190559050821561074357600080600061069486610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926106cc908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561073f5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b61074c8461160e565b60008481526006602052604090205480156107df576000858152600660205260408120556107a37f000000000000000000000000000000000000000000000000000000000000000061079d8761177a565b83611841565b604080518681526020810183905233917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050505050565b6008546001600160a01b031633148015610801575042600954105b61080a57600080fd5b6008546007546040514281526001600160a01b0392831692909116907fb2d1f3d32490fa2a19a9b5f9f65ed2610f2b93c402d647e6ad79b49fe5f153769060200160405180910390a3600854600780546001600160a01b0319166001600160a01b03909216919091179055565b8060006108826115ab565b9050600061088e610e27565b600383905560028190559050821561095d5760008060006108ae86610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926108e6908490611f6e565b90915550506000868152600e602052604090205463ffffffff168411156109595760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6109668461160e565b61096f84611912565b50505050565b6007546001600160a01b0316331461098c57600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015610a0557602002820191906000526020600020905b8154815260200190600101908083116109f1575b5050505050905060005b815181101561064157610a3a828281518110610a2d57610a2d611f08565b6020026020010151610877565b80610a4481611f34565b915050610a0f565b60106020528160005260406000208181548110610a6857600080fd5b90600052602060002001600091509150505481565b6007546001600160a01b03163314610a9457600080fd5b42600d5410610aa257600080fd5b600c54600b546040514281526001600160a01b0392831692909116907f7385805103b4fb95658c5a10668e0a1296df53ff41afec0b79d78d5461a71f389060200160405180910390a3600c54600b80546001600160a01b0319166001600160a01b03909216919091179055565b600080600080600073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610b5991815260200190565b6101806040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611fcd565b50506040516351c403f960e11b8152600286810b600483015285900b6024820152949b50929950506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016975063a38807f296505060449091019350610c1692505050565b60606040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6691906120ae565b600089815260116020908152604080832054600e835281842082518084019093525463ffffffff8082168085526401000000009092041693830193909352600154949a50955093509091610cba9190611a62565b610cc2610e27565b610ccc919061210a565b90508015610d65576000610cf58284602001518a610cea9190612121565b63ffffffff16611a62565b60008b81526005602052604081205491925090670de0b6b3a764000090610d1a6115ab565b610d24919061210a565b610d2e9087611f4f565b610d389190612146565b9050600083610d478484611f4f565b610d519190612146565b9050610d5d818361210a565b909a50975050505b600089815260066020526040902054610d7e9089611f6e565b975050505050509193909250565b60005b815181101561064157610dba828281518110610dad57610dad611f08565b602002602001015161160e565b80610dc481611f34565b915050610d8f565b6007546001600160a01b03163314610de357600080fd5b600480546000909155600b54610e24907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683611841565b50565b600061065842600154611a62565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614610e7357600080fd5b610641815b600a546001600160a01b03163314610e8f57600080fd5b600080610e9a6115ab565b90506000610ea6610e27565b6003839055600281905590508215610f75576000806000610ec686610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392610efe908490611f6e565b90915550506000868152600e602052604090205463ffffffff16841115610f715760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6001544210610f9357610f8b62093a8085612146565b600055610fd4565b600042600154610fa3919061210a565b90506000805482610fb49190611f4f565b905062093a80610fc48288611f6e565b610fce9190612146565b60005550505b426002819055610fe89062093a8090611f6e565b6001556110177f0000000000000000000000000000000000000000000000000000000000000000333087611a7a565b60405184815233907fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29906020015b60405180910390a250505050565b6007546001600160a01b0316331461106a57600080fd5b600880546001600160a01b0319166001600160a01b0383161790556110926201518042611f6e565b60095550565b8060006110a36115ab565b905060006110af610e27565b600383905560028190559050821561117e5760008060006110cf86610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392611107908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561117a5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b60008060008060008073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab888b6040518263ffffffff1660e01b81526004016111c991815260200190565b6101806040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190611fcd565b505050509750975097509750975097505050600061127d731f98431c8ad98523631ae4a59f267346ea31f98460405180606001604052808a6001600160a01b03168152602001896001600160a01b031681526020018862ffffff16815250611b5b565b9050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112bd57600080fd5b6000826001600160801b0316116112d357600080fd5b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061218a565b50505050509150508060020b8560020b1315801561136a57508360020b8160020b13155b61137357600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018d905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156113cc57600080fd5b505af11580156113e0573d6000803e3d6000fd5b5050505033600f60008e815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060106000336001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190915055826001600160801b0316601160008e815260200190815260200160002081905550826001600160801b0316601260008282546114a49190611f6e565b9091555050604080518d81526001600160801b038516602082015233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a2505050505050505050505050565b6001600160a01b03811660009081526010602090815260409182902080548351818402810184019094528084526060939283018282801561155a57602002820191906000526020600020905b815481526020019060010190808311611546575b50505050509050919050565b6007546001600160a01b0316331461157d57600080fd5b600c80546001600160a01b0319166001600160a01b0383161790556115a56201518042611f6e565b600d5550565b6000601254600014156115bf575060035490565b601254670de0b6b3a76400006000546002546115d9610e27565b6115e3919061210a565b6115ed9190611f4f565b6115f79190611f4f565b6116019190612146565b6003546106589190611f6e565b6000818152600f60205260409020546001600160a01b031615610e245760408051608081018252828152600b546001600160a01b03908116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b81528551600482015292519093166024830152915182166044820152925116606483015290600090819073c36442b4a4522e871399cd717abdd847ab11fe889063fc6f7865906084016040805180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611706919061221a565b91509150816013600082825461171c9190611f6e565b9250508190555080601460008282546117359190611f6e565b9091555050604080518581526020810184905290810182905233907fde5e3abbba77c313e4f5881ab0685bbbbb54f38b5cfbdd6230e88642a5df29f190606001611045565b6000818152600f60205260408120546001600160a01b0316156117b357506000908152600f60205260409020546001600160a01b031690565b6040516331a9108f60e11b81526004810183905273c36442b4a4522e871399cd717abdd847ab11fe8890636352211e9060240160206040518083038186803b1580156117fe57600080fd5b505afa158015611812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611836919061223e565b92915050565b919050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161189d919061225b565b6000604051808303816000865af19150503d80600081146118da576040519150601f19603f3d011682016040523d82523d6000602084013e6118df565b606091505b50915091508180156119095750805115806119095750808060200190518101906119099190612296565b6107df57600080fd5b6000818152600f60205260409020546001600160a01b0316331461193557600080fd5b6000818152601160205260408120805490829055601280549192839261195c90849061210a565b90915550506000828152600f6020908152604080832080546001600160a01b0319169055338352601090915290206119949083611c44565b6040516323b872dd60e01b81523060048201523360248201526044810183905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156119ed57600080fd5b505af1158015611a01573d6000803e3d6000fd5b5050506000838152600e6020908152604091829020805467ffffffffffffffff1916905581518581529081018490523392507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a25050565b6000818310611a715781611a73565b825b9392505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611ade919061225b565b6000604051808303816000865af19150503d8060008114611b1b576040519150601f19603f3d011682016040523d82523d6000602084013e611b20565b606091505b5091509150818015611b4a575080511580611b4a575080806020019051810190611b4a9190612296565b611b5357600080fd5b505050505050565b600081602001516001600160a01b031682600001516001600160a01b031610611b8357600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6000611c9f83805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191906000526020600020905b815481526020019060010190808311611c80575b505050505083611d35565b8354909150808210611cb15750505050565b611cbc60018261210a565b821015611d095783611ccf60018361210a565b81548110611cdf57611cdf611f08565b9060005260206000200154848381548110611cfc57611cfc611f08565b6000918252602090912001555b83805480611d1957611d196122b1565b6001900381819060005260206000200160009055905550505050565b60005b82518110156118365781838281518110611d5457611d54611f08565b60200260200101511415611d6757611836565b80611d7181611f34565b915050611d38565b600060208284031215611d8b57600080fd5b5035919050565b6001600160a01b0381168114610e2457600080fd5b600060208284031215611db957600080fd5b8135611a7381611d92565b60008060408385031215611dd757600080fd5b8235611de281611d92565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e1957600080fd5b823567ffffffffffffffff80821115611e3157600080fd5b818501915085601f830112611e4557600080fd5b813581811115611e5757611e57611df0565b8060051b604051601f19603f83011681018181108582111715611e7c57611e7c611df0565b604052918252848201925083810185019188831115611e9a57600080fd5b938501935b82851015611eb857843584529385019392850192611e9f565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611efc57835183529284019291840191600101611ee0565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f4857611f48611f1e565b5060010190565b6000816000190483118215151615611f6957611f69611f1e565b500290565b60008219821115611f8157611f81611f1e565b500190565b805161183c81611d92565b805162ffffff8116811461183c57600080fd5b8051600281900b811461183c57600080fd5b80516001600160801b038116811461183c57600080fd5b6000806000806000806000806000806000806101808d8f031215611ff057600080fd5b8c516bffffffffffffffffffffffff8116811461200c57600080fd5b9b5061201a60208e01611f86565b9a5061202860408e01611f86565b995061203660608e01611f86565b985061204460808e01611f91565b975061205260a08e01611fa4565b965061206060c08e01611fa4565b955061206e60e08e01611fb6565b94506101008d015193506101208d0151925061208d6101408e01611fb6565b915061209c6101608e01611fb6565b90509295989b509295989b509295989b565b6000806000606084860312156120c357600080fd5b83518060060b81146120d457600080fd5b60208501519093506120e581611d92565b604085015190925063ffffffff811681146120ff57600080fd5b809150509250925092565b60008282101561211c5761211c611f1e565b500390565b600063ffffffff8381169083168181101561213e5761213e611f1e565b039392505050565b60008261216357634e487b7160e01b600052601260045260246000fd5b500490565b805161ffff8116811461183c57600080fd5b8051801515811461183c57600080fd5b600080600080600080600060e0888a0312156121a557600080fd5b87516121b081611d92565b96506121be60208901611fa4565b95506121cc60408901612168565b94506121da60608901612168565b93506121e860808901612168565b925060a088015160ff811681146121fe57600080fd5b915061220c60c0890161217a565b905092959891949750929550565b6000806040838503121561222d57600080fd5b505080516020909101519092909150565b60006020828403121561225057600080fd5b8151611a7381611d92565b6000825160005b8181101561227c5760208186018101518583015201612262565b8181111561228b576000828501525b509190910192915050565b6000602082840312156122a857600080fd5b611a738261217a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a64736f6c63430008090033000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e900000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf50000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd020000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023c5760003560e01c806354021a8b1161013b578063ab033ea9116100b8578063ed7b686e1161007c578063ed7b686e14610556578063f0f442601461055f578063f301af4214610572578063f3d86e4a14610592578063f570cb7e1461059b57600080fd5b8063ab033ea9146104f4578063b6b55f2514610507578063d004b0361461051a578063d6ccdb221461053a578063dcc3e06e1461054357600080fd5b806361d027b3116100ff57806361d027b3146104aa57806380faa57d146104bd5780638ed42500146104c557806393f7aa67146104ce57806398d078b4146104e157600080fd5b806354021a8b1461040d57806357f46cbe1461045c578063590e1ae31461046f5780635aa6e675146104775780635f49a32c1461048a57600080fd5b8063228cb733116101c95780633ccfd60b1161018d5780633ccfd60b146103ae5780633de419e9146103b657806341d86d00146103c95780634d6ed8c4146103d157806351d201d81461040457600080fd5b8063228cb73314610346578063238efcbc1461036d5780632e1a7d4d14610375578063377f3300146103885780633a6462e41461039b57600080fd5b806311e904e31161021057806311e904e3146102d257806315770f92146102fb57806316f0115b146103045780631c1f78eb1461032b5780631c4b774b1461033357600080fd5b806274f27f1461024157806301f5d02e14610271578063025e7c271461029f5780630572b0cc146102c8575b600080fd5b600854610254906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61029161027f366004611d79565b60056020526000908152604090205481565b604051908152602001610268565b6102546102ad366004611d79565b600f602052600090815260409020546001600160a01b031681565b6102d06105a3565b005b6102916102e0366004611da7565b6001600160a01b031660009081526010602052604090205490565b61029160125481565b6102547f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf581565b610291610645565b6102d0610341366004611d79565b61065d565b6102547f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e981565b6102d06107e6565b6102d0610383366004611d79565b610877565b600c54610254906001600160a01b031681565b6102d06103a9366004611da7565b610975565b6102d06109ae565b6102916103c4366004611dc4565b610a4c565b6102d0610a7d565b6103e46103df366004611d79565b610b0f565b6040805193845263ffffffff909216602084015290820152606001610268565b61029160095481565b61043f61041b366004611d79565b600e6020526000908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610268565b6102d061046a366004611e06565b610d8c565b6102d0610dcc565b600754610254906001600160a01b031681565b610291610498366004611d79565b60116020526000908152604090205481565b600b54610254906001600160a01b031681565b610291610e27565b61029160145481565b6102d06104dc366004611dc4565b610e35565b6102d06104ef366004611d79565b610e78565b6102d0610502366004611da7565b611053565b6102d0610515366004611d79565b611098565b61052d610528366004611da7565b6114fa565b6040516102689190611ec4565b61029160135481565b600a54610254906001600160a01b031681565b610291600d5481565b6102d061056d366004611da7565b611566565b610291610580366004611d79565b60066020526000908152604090205481565b61029160045481565b6102916115ab565b336000908152601060209081526040808320805482518185028101850190935280835291929091908301828280156105fa57602002820191906000526020600020905b8154815260200190600101908083116105e6575b5050505050905060005b81518110156106415761062f82828151811061062257610622611f08565b602002602001015161065d565b8061063981611f34565b915050610604565b5050565b600062093a806000546106589190611f4f565b905090565b8060006106686115ab565b90506000610674610e27565b600383905560028190559050821561074357600080600061069486610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926106cc908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561073f5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b61074c8461160e565b60008481526006602052604090205480156107df576000858152600660205260408120556107a37f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e961079d8761177a565b83611841565b604080518681526020810183905233917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050505050565b6008546001600160a01b031633148015610801575042600954105b61080a57600080fd5b6008546007546040514281526001600160a01b0392831692909116907fb2d1f3d32490fa2a19a9b5f9f65ed2610f2b93c402d647e6ad79b49fe5f153769060200160405180910390a3600854600780546001600160a01b0319166001600160a01b03909216919091179055565b8060006108826115ab565b9050600061088e610e27565b600383905560028190559050821561095d5760008060006108ae86610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926108e6908490611f6e565b90915550506000868152600e602052604090205463ffffffff168411156109595760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6109668461160e565b61096f84611912565b50505050565b6007546001600160a01b0316331461098c57600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015610a0557602002820191906000526020600020905b8154815260200190600101908083116109f1575b5050505050905060005b815181101561064157610a3a828281518110610a2d57610a2d611f08565b6020026020010151610877565b80610a4481611f34565b915050610a0f565b60106020528160005260406000208181548110610a6857600080fd5b90600052602060002001600091509150505481565b6007546001600160a01b03163314610a9457600080fd5b42600d5410610aa257600080fd5b600c54600b546040514281526001600160a01b0392831692909116907f7385805103b4fb95658c5a10668e0a1296df53ff41afec0b79d78d5461a71f389060200160405180910390a3600c54600b80546001600160a01b0319166001600160a01b03909216919091179055565b600080600080600073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610b5991815260200190565b6101806040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611fcd565b50506040516351c403f960e11b8152600286810b600483015285900b6024820152949b50929950506001600160a01b037f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf516975063a38807f296505060449091019350610c1692505050565b60606040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6691906120ae565b600089815260116020908152604080832054600e835281842082518084019093525463ffffffff8082168085526401000000009092041693830193909352600154949a50955093509091610cba9190611a62565b610cc2610e27565b610ccc919061210a565b90508015610d65576000610cf58284602001518a610cea9190612121565b63ffffffff16611a62565b60008b81526005602052604081205491925090670de0b6b3a764000090610d1a6115ab565b610d24919061210a565b610d2e9087611f4f565b610d389190612146565b9050600083610d478484611f4f565b610d519190612146565b9050610d5d818361210a565b909a50975050505b600089815260066020526040902054610d7e9089611f6e565b975050505050509193909250565b60005b815181101561064157610dba828281518110610dad57610dad611f08565b602002602001015161160e565b80610dc481611f34565b915050610d8f565b6007546001600160a01b03163314610de357600080fd5b600480546000909155600b54610e24907f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9906001600160a01b031683611841565b50565b600061065842600154611a62565b7f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e96001600160a01b0316826001600160a01b031614610e7357600080fd5b610641815b600a546001600160a01b03163314610e8f57600080fd5b600080610e9a6115ab565b90506000610ea6610e27565b6003839055600281905590508215610f75576000806000610ec686610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392610efe908490611f6e565b90915550506000868152600e602052604090205463ffffffff16841115610f715760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6001544210610f9357610f8b62093a8085612146565b600055610fd4565b600042600154610fa3919061210a565b90506000805482610fb49190611f4f565b905062093a80610fc48288611f6e565b610fce9190612146565b60005550505b426002819055610fe89062093a8090611f6e565b6001556110177f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9333087611a7a565b60405184815233907fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29906020015b60405180910390a250505050565b6007546001600160a01b0316331461106a57600080fd5b600880546001600160a01b0319166001600160a01b0383161790556110926201518042611f6e565b60095550565b8060006110a36115ab565b905060006110af610e27565b600383905560028190559050821561117e5760008060006110cf86610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392611107908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561117a5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b60008060008060008073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab888b6040518263ffffffff1660e01b81526004016111c991815260200190565b6101806040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190611fcd565b505050509750975097509750975097505050600061127d731f98431c8ad98523631ae4a59f267346ea31f98460405180606001604052808a6001600160a01b03168152602001896001600160a01b031681526020018862ffffff16815250611b5b565b9050806001600160a01b03167f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf56001600160a01b0316146112bd57600080fd5b6000826001600160801b0316116112d357600080fd5b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061218a565b50505050509150508060020b8560020b1315801561136a57508360020b8160020b13155b61137357600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018d905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156113cc57600080fd5b505af11580156113e0573d6000803e3d6000fd5b5050505033600f60008e815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060106000336001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190915055826001600160801b0316601160008e815260200190815260200160002081905550826001600160801b0316601260008282546114a49190611f6e565b9091555050604080518d81526001600160801b038516602082015233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a2505050505050505050505050565b6001600160a01b03811660009081526010602090815260409182902080548351818402810184019094528084526060939283018282801561155a57602002820191906000526020600020905b815481526020019060010190808311611546575b50505050509050919050565b6007546001600160a01b0316331461157d57600080fd5b600c80546001600160a01b0319166001600160a01b0383161790556115a56201518042611f6e565b600d5550565b6000601254600014156115bf575060035490565b601254670de0b6b3a76400006000546002546115d9610e27565b6115e3919061210a565b6115ed9190611f4f565b6115f79190611f4f565b6116019190612146565b6003546106589190611f6e565b6000818152600f60205260409020546001600160a01b031615610e245760408051608081018252828152600b546001600160a01b03908116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b81528551600482015292519093166024830152915182166044820152925116606483015290600090819073c36442b4a4522e871399cd717abdd847ab11fe889063fc6f7865906084016040805180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611706919061221a565b91509150816013600082825461171c9190611f6e565b9250508190555080601460008282546117359190611f6e565b9091555050604080518581526020810184905290810182905233907fde5e3abbba77c313e4f5881ab0685bbbbb54f38b5cfbdd6230e88642a5df29f190606001611045565b6000818152600f60205260408120546001600160a01b0316156117b357506000908152600f60205260409020546001600160a01b031690565b6040516331a9108f60e11b81526004810183905273c36442b4a4522e871399cd717abdd847ab11fe8890636352211e9060240160206040518083038186803b1580156117fe57600080fd5b505afa158015611812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611836919061223e565b92915050565b919050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161189d919061225b565b6000604051808303816000865af19150503d80600081146118da576040519150601f19603f3d011682016040523d82523d6000602084013e6118df565b606091505b50915091508180156119095750805115806119095750808060200190518101906119099190612296565b6107df57600080fd5b6000818152600f60205260409020546001600160a01b0316331461193557600080fd5b6000818152601160205260408120805490829055601280549192839261195c90849061210a565b90915550506000828152600f6020908152604080832080546001600160a01b0319169055338352601090915290206119949083611c44565b6040516323b872dd60e01b81523060048201523360248201526044810183905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156119ed57600080fd5b505af1158015611a01573d6000803e3d6000fd5b5050506000838152600e6020908152604091829020805467ffffffffffffffff1916905581518581529081018490523392507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a25050565b6000818310611a715781611a73565b825b9392505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611ade919061225b565b6000604051808303816000865af19150503d8060008114611b1b576040519150601f19603f3d011682016040523d82523d6000602084013e611b20565b606091505b5091509150818015611b4a575080511580611b4a575080806020019051810190611b4a9190612296565b611b5357600080fd5b505050505050565b600081602001516001600160a01b031682600001516001600160a01b031610611b8357600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6000611c9f83805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191906000526020600020905b815481526020019060010190808311611c80575b505050505083611d35565b8354909150808210611cb15750505050565b611cbc60018261210a565b821015611d095783611ccf60018361210a565b81548110611cdf57611cdf611f08565b9060005260206000200154848381548110611cfc57611cfc611f08565b6000918252602090912001555b83805480611d1957611d196122b1565b6001900381819060005260206000200160009055905550505050565b60005b82518110156118365781838281518110611d5457611d54611f08565b60200260200101511415611d6757611836565b80611d7181611f34565b915050611d38565b600060208284031215611d8b57600080fd5b5035919050565b6001600160a01b0381168114610e2457600080fd5b600060208284031215611db957600080fd5b8135611a7381611d92565b60008060408385031215611dd757600080fd5b8235611de281611d92565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e1957600080fd5b823567ffffffffffffffff80821115611e3157600080fd5b818501915085601f830112611e4557600080fd5b813581811115611e5757611e57611df0565b8060051b604051601f19603f83011681018181108582111715611e7c57611e7c611df0565b604052918252848201925083810185019188831115611e9a57600080fd5b938501935b82851015611eb857843584529385019392850192611e9f565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611efc57835183529284019291840191600101611ee0565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f4857611f48611f1e565b5060010190565b6000816000190483118215151615611f6957611f69611f1e565b500290565b60008219821115611f8157611f81611f1e565b500190565b805161183c81611d92565b805162ffffff8116811461183c57600080fd5b8051600281900b811461183c57600080fd5b80516001600160801b038116811461183c57600080fd5b6000806000806000806000806000806000806101808d8f031215611ff057600080fd5b8c516bffffffffffffffffffffffff8116811461200c57600080fd5b9b5061201a60208e01611f86565b9a5061202860408e01611f86565b995061203660608e01611f86565b985061204460808e01611f91565b975061205260a08e01611fa4565b965061206060c08e01611fa4565b955061206e60e08e01611fb6565b94506101008d015193506101208d0151925061208d6101408e01611fb6565b915061209c6101608e01611fb6565b90509295989b509295989b509295989b565b6000806000606084860312156120c357600080fd5b83518060060b81146120d457600080fd5b60208501519093506120e581611d92565b604085015190925063ffffffff811681146120ff57600080fd5b809150509250925092565b60008282101561211c5761211c611f1e565b500390565b600063ffffffff8381169083168181101561213e5761213e611f1e565b039392505050565b60008261216357634e487b7160e01b600052601260045260246000fd5b500490565b805161ffff8116811461183c57600080fd5b8051801515811461183c57600080fd5b600080600080600080600060e0888a0312156121a557600080fd5b87516121b081611d92565b96506121be60208901611fa4565b95506121cc60408901612168565b94506121da60608901612168565b93506121e860808901612168565b925060a088015160ff811681146121fe57600080fd5b915061220c60c0890161217a565b905092959891949750929550565b6000806040838503121561222d57600080fd5b505080516020909101519092909150565b60006020828403121561225057600080fd5b8151611a7381611d92565b6000825160005b8181101561227c5760208186018101518583015201612262565b8181111561228b576000828501525b509190910192915050565b6000602082840312156122a857600080fd5b611a738261217a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e900000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf50000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd020000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c
-----Decoded View---------------
Arg [0] : _reward (address): 0xEdB67Ee1B171c4eC66E6c10EC43EDBbA20FaE8e9
Arg [1] : _pool (address): 0x11B7a6bc0259ed6Cf9DB8F499988F9eCc7167bf5
Arg [2] : _governance (address): 0x2D407dDb06311396fE14D4b49da5F0471447d45C
Arg [3] : _treasury (address): 0x0DBA6457EA72ecf784a55AbD738b1f9b6c45FD02
Arg [4] : _rewarder (address): 0x2D407dDb06311396fE14D4b49da5F0471447d45C
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9
Arg [1] : 00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf5
Arg [2] : 0000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c
Arg [3] : 0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd02
Arg [4] : 0000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c
Deployed Bytecode Sourcemap
2773:10878:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:29;;;;;-1:-1:-1;;;;;3425:29:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3425:29:0;;;;;;;;3285:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;553:25:1;;;541:2;526:18;3285:56:0;407:177:1;3803:38:0;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3803:38:0;;;10398:194;;;:::i;:::-;;5963:121;;;;;;:::i;:::-;-1:-1:-1;;;;;6053:16:0;6029:4;6053:16;;;:8;:16;;;;;:23;;5963:121;3944:26;;;;;;2846:29;;;;;8272:108;;;:::i;10600:339::-;;;;;;:::i;:::-;;:::i;2808:31::-;;;;;5335:239;;;:::i;9791:120::-;;;;;;:::i;:::-;;:::i;3563:27::-;;;;;-1:-1:-1;;;;;3563:27:0;;;5049:103;;;;;;:::i;:::-;;:::i;11193:191::-;;;:::i;3848:42::-;;;;;;:::i;:::-;;:::i;5747:208::-;;;:::i;7286:978::-;;;;;;:::i;:::-;;:::i;:::-;;;;1497:25:1;;;1570:10;1558:23;;;1553:2;1538:18;;1531:51;1598:18;;;1591:34;1485:2;1470:18;7286:978:0;1297:334:1;3461:27:0;;;;;;3760:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:10:1;1853:15;;;1835:34;;1905:15;;;;1900:2;1885:18;;1878:43;1779:18;3760:36:0;1636:291:1;6653:156:0;;;;;;:::i;:::-;;:::i;12130:160::-;;;:::i;3393:25::-;;;;;-1:-1:-1;;;;;3393:25:0;;;3897:40;;;;;;:::i;:::-;;;;;;;;;;;;;;3533:23;;;;;-1:-1:-1;;;;;3533:23:0;;;6217:128;;;:::i;4005:19::-;;;;;;11392:137;;;;;;:::i;:::-;;:::i;11537:585::-;;;;;;:::i;:::-;;:::i;5160:167::-;;;;;;:::i;:::-;;:::i;8388:833::-;;;;;;:::i;:::-;;:::i;6092:117::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3979:19::-;;;;;;3497:23;;;;;-1:-1:-1;;;;;3497:23:0;;;3597:25;;;;;;5582:157;;;;;;:::i;:::-;;:::i;3348:36::-;;;;;;:::i;:::-;;;;;;;;;;;;;;3257:19;;;;;;6353:292;;;:::i;10398:194::-;10473:10;10440:21;10464:20;;;:8;:20;;;;;;;;10440:44;;;;;;;;;;;;;;;;;;;10464:20;;10440:44;;;10464:20;10440:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10500:6;10495:90;10516:7;:14;10512:1;:18;10495:90;;;10552:21;10562:7;10570:1;10562:10;;;;;;;;:::i;:::-;;;;;;;10552:9;:21::i;:::-;10532:3;;;;:::i;:::-;;;;10495:90;;;;10429:163;10398:194::o;8272:108::-;8327:4;3093:6;8351:10;;:21;;;;:::i;:::-;8344:28;;8272:108;:::o;10600:339::-;10647:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;10667:17:::1;10676:7;10667:8;:17::i;:::-;10695:12;10710:16:::0;;;:7:::1;:16;::::0;;;;;10741:11;;10737:195:::1;;10788:1;10769:16:::0;;;:7:::1;:16;::::0;;;;:20;10804:54:::1;10818:6;10826:22;10777:7:::0;10826:13:::1;:22::i;:::-;10850:7;10804:13;:54::i;:::-;10880:40;::::0;;4705:25:1;;;4761:2;4746:18;;4739:34;;;10891:10:0::1;::::0;10880:40:::1;::::0;4678:18:1;10880:40:0::1;;;;;;;10737:195;10656:283;12328:698:::0;;10600:339;;:::o;5335:239::-;5405:14;;-1:-1:-1;;;;;5405:14:0;5391:10;:28;:65;;;;;5441:15;5423;;:33;5391:65;5383:74;;;;;;5496:14;;5484:10;;5473:55;;5512:15;553:25:1;;-1:-1:-1;;;;;5496:14:0;;;;5484:10;;;;5473:55;;541:2:1;526:18;5473:55:0;;;;;;;5552:14;;5539:10;:27;;-1:-1:-1;;;;;;5539:27:0;-1:-1:-1;;;;;5552:14:0;;;5539:27;;;;;;5335:239::o;9791:120::-;9837:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;9857:17:::1;9866:7;9857:8;:17::i;:::-;9885:18;9895:7;9885:9;:18::i;:::-;12328:698:::0;;9791:120;;:::o;5049:103::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5124:8:::1;:20:::0;;-1:-1:-1;;;;;;5124:20:0::1;-1:-1:-1::0;;;;;5124:20:0;;;::::1;::::0;;;::::1;::::0;;5049:103::o;11193:191::-;11266:10;11233:21;11257:20;;;:8;:20;;;;;;;;11233:44;;;;;;;;;;;;;;;;;;;11257:20;;11233:44;;;11257:20;11233:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:6;11288:89;11309:7;:14;11305:1;:18;11288:89;;;11345:20;11354:7;11362:1;11354:10;;;;;;;;:::i;:::-;;;;;;;11345:8;:20::i;:::-;11325:3;;;;:::i;:::-;;;;11288:89;;3848:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5747:208::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5832:15:::1;5816:13;;:31;5808:40;;;::::0;::::1;;5883:12;::::0;5873:8:::1;::::0;5864:49:::1;::::0;5897:15:::1;553:25:1::0;;-1:-1:-1;;;;;5883:12:0;;::::1;::::0;5873:8;;::::1;::::0;5864:49:::1;::::0;541:2:1;526:18;5864:49:0::1;;;;;;;5935:12;::::0;5924:8:::1;:23:::0;;-1:-1:-1;;;;;;5924:23:0::1;-1:-1:-1::0;;;;;5935:12:0;;::::1;5924:23:::0;;;::::1;::::0;;5747:208::o;7286:978::-;7337:14;7353:20;7375:14;7408:16;7425;3018:42;-1:-1:-1;;;;;7450:20:0;;7471:7;7450:29;;;;;;;;;;;;;553:25:1;;541:2;526:18;;407:177;7450:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7510:61:0;;-1:-1:-1;;;7510:61:0;;6849:1:1;6838:21;;;7510:61:0;;;6820:40:1;6896:21;;;6876:18;;;6869:49;7402:77:0;;-1:-1:-1;7402:77:0;;-1:-1:-1;;;;;;;7516:4:0;7510:37;;-1:-1:-1;7510:37:0;;-1:-1:-1;;6793:18:1;;;;;-1:-1:-1;7510:61:0;;-1:-1:-1;;;6654:270:1;7510:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7584:15;7602:20;;;:11;:20;;;;;;;;;7656:7;:16;;;;;7633:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7769:12;7490:81;;-1:-1:-1;7602:20:0;-1:-1:-1;7633:39:0;-1:-1:-1;7584:15:0;;7740:42;;7633:39;7740:8;:42::i;:::-;7711:26;:24;:26::i;:::-;:71;;;;:::i;:::-;7685:97;-1:-1:-1;7797:22:0;;7793:424;;7836:19;7858:70;7867:18;7904:8;:22;;;7888:13;:38;;;;:::i;:::-;7858:70;;:8;:70::i;:::-;7949:12;8002:36;;;:27;:36;;;;;;7836:92;;-1:-1:-1;7949:12:0;3132:8;;7979:20;:18;:20::i;:::-;:59;;;;:::i;:::-;7965:74;;:10;:74;:::i;:::-;:86;;;;:::i;:::-;7949:103;-1:-1:-1;8067:12:0;8109:18;8082:24;8092:14;7949:103;8082:24;:::i;:::-;:45;;;;:::i;:::-;8067:60;-1:-1:-1;8154:17:0;8067:60;8154:7;:17;:::i;:::-;8198:7;;-1:-1:-1;8142:29:0;-1:-1:-1;;;7793:424:0;8240:16;;;;:7;:16;;;;;;8227:29;;;;:::i;:::-;;;7391:873;;;;;7286:978;;;;;:::o;6653:156::-;6718:6;6713:89;6734:7;:14;6730:1;:18;6713:89;;;6770:20;6779:7;6787:1;6779:10;;;;;;;;:::i;:::-;;;;;;;6770:8;:20::i;:::-;6750:3;;;;:::i;:::-;;;;6713:89;;12130:160;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;12199:7:::1;::::0;;12183:13:::1;12217:11:::0;;;12263:8:::1;::::0;12241:41:::1;::::0;12255:6:::1;::::0;-1:-1:-1;;;;;12263:8:0::1;12199:7:::0;12241:13:::1;:41::i;:::-;12172:118;12130:160::o:0;6217:128::-;6274:4;6298:39;6307:15;6324:12;;6298:8;:39::i;11392:137::-;11488:6;-1:-1:-1;;;;;11479:15:0;:5;-1:-1:-1;;;;;11479:15:0;;11471:24;;;;;;11506:15;11513:7;11537:585;5012:8;;-1:-1:-1;;;;;5012:8:0;4998:10;:22;4990:31;;;;;;11593:1:::1;12339:30:::0;12372:20:::1;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52:::0;;;12526:14:::1;:32:::0;;;12403:49;-1:-1:-1;12573:12:0;;12569:438:::1;;12603:12;12617:21:::0;12640:15:::1;12659;12666:7;12659:6;:15::i;:::-;12689:36;::::0;;;:27:::1;:36;::::0;;;;;;;:64;;;12768:7:::1;:16:::0;;;;;:26;;;12809:7:::1;:21:::0;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21:::1;::::0;12602:72;;12809:21:::1;:::i;:::-;::::0;;;-1:-1:-1;;12851:16:0::1;::::0;;;:7:::1;:16;::::0;;;;:26;::::1;;:44:::0;-1:-1:-1;12847:149:0::1;;;12935:45;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;12916:16:0;;;:7:::1;:16:::0;;;;;;;:64;;;;;;;::::1;::::0;::::1;-1:-1:-1::0;;12916:64:0;;;;::::1;::::0;;;;::::1;::::0;;12847:149:::1;12587:420;;;12569:438;11630:12:::2;;11611:15;:31;11607:291;;11672:17;3093:6;11672::::0;:17:::2;:::i;:::-;11659:10;:30:::0;11607:291:::2;;;11722:15;11755;11740:12;;:30;;;;:::i;:::-;11722:48;;11785:14;11815:10:::0;::::2;11802;:23;;;;:::i;:::-;11785:40:::0;-1:-1:-1;3093:6:0::2;11856:18;11785:40:::0;11856:6;:18:::2;:::i;:::-;11855:31;;;;:::i;:::-;11842:10;:44:::0;-1:-1:-1;;11607:291:0::2;11927:15;11910:14;:32:::0;;;11968:26:::2;::::0;3093:6:::2;::::0;11968:26:::2;:::i;:::-;11953:12;:41:::0;12007:60:::2;12025:6;12033:10;12053:4;12060:6:::0;12007:17:::2;:60::i;:::-;12083:31;::::0;553:25:1;;;12095:10:0::2;::::0;12083:31:::2;::::0;541:2:1;526:18;12083:31:0::2;;;;;;;;12328:698:::1;;5032:1;11537:585:::0;:::o;5160:167::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5239:14:::1;:28:::0;;-1:-1:-1;;;;;;5239:28:0::1;-1:-1:-1::0;;;;;5239:28:0;::::1;;::::0;;5296:23:::1;3659:6;5296:15;:23;:::i;:::-;5278:15;:41:::0;-1:-1:-1;5160:167:0:o;8388:833::-;8435:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;8458:14:::1;8473::::0;8488:10:::1;8499:15:::0;8515::::1;8531:18:::0;3018:42:::1;-1:-1:-1::0;;;;;8557:20:0::1;;8578:7;8557:29;;;;;;;;;;;;;553:25:1::0;;541:2;526:18;;407:177;8557:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8455:131;;;;;;;;;;;;;;;;;;8597:13;8613:99;2911:42;8648:63;;;;;;;;8677:6;-1:-1:-1::0;;;;;8648:63:0::1;;;;;8693:6;-1:-1:-1::0;;;;;8648:63:0::1;;;;;8706:3;8648:63;;;;::::0;8613:26:::1;:99::i;:::-;8597:115;;8741:5;-1:-1:-1::0;;;;;8733:13:0::1;:4;-1:-1:-1::0;;;;;8733:13:0::1;;8725:22;;;::::0;::::1;;8779:1;8766:10;-1:-1:-1::0;;;;;8766:14:0::1;;8758:23;;;::::0;::::1;;8796:11;8822:5;-1:-1:-1::0;;;;;8816:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8794:42;;;;;;;;8868:5;8855:18;;:9;:18;;;;:40;;;;;8886:9;8877:18;;:5;:18;;;;8855:40;8847:49;;;::::0;::::1;;8909:59;::::0;-1:-1:-1;;;8909:59:0;;8933:10:::1;8909:59;::::0;::::1;9492:34:1::0;8953:4:0::1;9542:18:1::0;;;9535:43;9594:18;;;9587:34;;;3018:42:0::1;::::0;8909:23:::1;::::0;9427:18:1;;8909:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9007:10;8989:6;:15;8996:7;8989:15;;;;;;;;;;;;:28;;;;;-1:-1:-1::0;;;;;8989:28:0::1;;;;;-1:-1:-1::0;;;;;8989:28:0::1;;;;;;9028:8;:20;9037:10;-1:-1:-1::0;;;;;9028:20:0::1;-1:-1:-1::0;;;;;9028:20:0::1;;;;;;;;;;;;9054:7;9028:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9106:10;-1:-1:-1::0;;;;;9083:33:0::1;:11;:20;9095:7;9083:20;;;;;;;;;;;:33;;;;9145:10;-1:-1:-1::0;;;;;9127:28:0::1;:14;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9173:40:0::1;::::0;;9806:25:1;;;-1:-1:-1;;;;;9867:47:1;;9862:2;9847:18;;9840:75;9181:10:0::1;::::0;9173:40:::1;::::0;9779:18:1;9173:40:0::1;;;;;;;8444:777;;;;;;;;12328:698:::0;;8388:833;;:::o;6092:117::-;-1:-1:-1;;;;;6185:16:0;;;;;;:8;:16;;;;;;;;;6178:23;;;;;;;;;;;;;;;;;6152:13;;6178:23;;;6185:16;6178:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6092:117;;;:::o;5582:157::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5657:12:::1;:24:::0;;-1:-1:-1;;;;;;5657:24:0::1;-1:-1:-1::0;;;;;5657:24:0;::::1;;::::0;;5708:23:::1;3659:6;5708:15;:23;:::i;:::-;5692:13;:39:::0;-1:-1:-1;5582:157:0:o;6353:292::-;6404:4;6425:14;;6443:1;6425:19;6421:83;;;-1:-1:-1;6468:24:0;;;6353:292::o;6421:83::-;6622:14;;3132:8;6597:10;;6579:14;;6550:26;:24;:26::i;:::-;:43;;;;:::i;:::-;6549:58;;;;:::i;:::-;:70;;;;:::i;:::-;:87;;;;:::i;:::-;6521:24;;:116;;;;:::i;6817:461::-;6900:1;6873:15;;;:6;:15;;;;;;-1:-1:-1;;;;;6873:15:0;:29;6869:402;;6967:88;;;;;;;;;;;7008:8;;-1:-1:-1;;;;;7008:8:0;;;6967:88;;;;;;-1:-1:-1;;;;;6967:88:0;;;;;;;;;;;;7101:26;;-1:-1:-1;;;7101:26:0;;10151:13:1;;7101:26:0;;;10133:32:1;10207:24;;10203:50;;;10181:20;;;10174:80;10283:24;;10398:21;;10376:20;;;10369:51;10462:24;;10458:33;10436:20;;;10429:63;6967:88:0;-1:-1:-1;;;;3018:42:0;;7101:18;;10105:19:1;;7101:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7070:57;;;;7153:7;7142;;:18;;;;;;;:::i;:::-;;;;;;;;7186:7;7175;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;7213:46:0;;;10955:25:1;;;11011:2;10996:18;;10989:34;;;11039:18;;;11032:34;;;7221:10:0;;7213:46;;10943:2:1;10928:18;7213:46:0;10753:319:1;10947:238:0;11007:7;11031:15;;;:6;:15;;;;;;-1:-1:-1;;;;;11031:15:0;:29;11027:151;;-1:-1:-1;11084:15:0;;;;:6;:15;;;;;;-1:-1:-1;;;;;11084:15:0;;10947:238::o;11027:151::-;11139:27;;-1:-1:-1;;;11139:27:0;;;;;553:25:1;;;3018:42:0;;11139:18;;526::1;;11139:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11132:34;10947:238;-1:-1:-1;;10947:238:0:o;11027:151::-;10947:238;;;:::o;13034:289::-;13179:58;;;-1:-1:-1;;;;;11525:32:1;;;13179:58:0;;;11507:51:1;11574:18;;;;11567:34;;;13179:58:0;;;;;;;;;;11480:18:1;;;;13179:58:0;;;;;;;-1:-1:-1;;;;;13179:58:0;-1:-1:-1;;;13179:58:0;;;13168:70;;-1:-1:-1;;;;13168:10:0;;;;:70;;13179:58;13168:70;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13119:119;;;;13257:7;:57;;;;-1:-1:-1;13269:11:0;;:16;;:44;;;13300:4;13289:24;;;;;;;;;;;;:::i;:::-;13249:66;;;;;9919:471;9980:15;;;;:6;:15;;;;;;-1:-1:-1;;;;;9980:15:0;9999:10;9980:29;9972:38;;;;;;10021:15;10039:20;;;:11;:20;;;;;;;10070:24;;;;10105:14;:28;;10039:20;;;;10105:28;;10039:20;;10105:28;:::i;:::-;;;;-1:-1:-1;;10170:1:0;10144:15;;;:6;:15;;;;;;;;:28;;-1:-1:-1;;;;;;10144:28:0;;;10200:10;10191:20;;:8;:20;;;;;10183:38;;10151:7;10183;:38::i;:::-;10232:59;;-1:-1:-1;;;10232:59:0;;10264:4;10232:59;;;9492:34:1;10271:10:0;9542:18:1;;;9535:43;9594:18;;;9587:34;;;3018:42:0;;10232:23;;9427:18:1;;10232:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10309:16:0;;;;:7;:16;;;;;;;;;10302:23;;-1:-1:-1;;10302:23:0;;;10341:41;;4705:25:1;;;4746:18;;;4739:34;;;10350:10:0;;-1:-1:-1;10341:41:0;;4678:18:1;10341:41:0;;;;;;;9961:429;9919:471;:::o;192:106::-;250:7;281:1;277;:5;:13;;289:1;277:13;;;285:1;277:13;270:20;192:106;-1:-1:-1;;;192:106:0:o;13331:317::-;13494:68;;;-1:-1:-1;;;;;9510:15:1;;;13494:68:0;;;9492:34:1;9562:15;;;9542:18;;;9535:43;9594:18;;;;9587:34;;;13494:68:0;;;;;;;;;;9427:18:1;;;;13494:68:0;;;;;;;-1:-1:-1;;;;;13494:68:0;-1:-1:-1;;;13494:68:0;;;13483:80;;-1:-1:-1;;;;13483:10:0;;;;:80;;13494:68;13483:80;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13434:129;;;;13582:7;:57;;;;-1:-1:-1;13594:11:0;;:16;;:44;;;13625:4;13614:24;;;;;;;;;;;;:::i;:::-;13574:66;;;;;;13423:225;;13331:317;;;;:::o;557:535::-;641:12;687:3;:10;;;-1:-1:-1;;;;;674:23:0;:3;:10;;;-1:-1:-1;;;;;674:23:0;;666:32;;;;;;936:10;;948;;;;;960:7;;;;;925:43;;-1:-1:-1;;;;;12506:15:1;;;925:43:0;;;12488:34:1;12558:15;;;;12538:18;;;12531:43;12622:8;12610:21;;;12590:18;;;;12583:49;;;;925:43:0;;;;;;;;;12423:18:1;;;925:43:0;;;915:54;;;;;;;-1:-1:-1;;;;;;804:234:0;;;12929:26:1;12988:15;;;;-1:-1:-1;;12984:53:1;12971:11;;;12964:74;13054:12;;;13047:28;380:66:0;13091:12:1;;;13084:28;13128:12;;804:234:0;;;-1:-1:-1;;804:234:0;;;;;;;;;772:285;;804:234;772:285;;;;;557:535;-1:-1:-1;;;557:535:0:o;9467:316::-;9540:11;9554:26;9565:5;9554:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9572:7;9554:10;:26::i;:::-;9606:12;;9540:40;;-1:-1:-1;9633:17:0;;;9629:30;;9652:7;;9467:316;;:::o;9629:30::-;9682:9;9690:1;9682:7;:9;:::i;:::-;9673:6;:18;9669:83;;;9724:5;9730:9;9738:1;9730:7;:9;:::i;:::-;9724:16;;;;;;;;:::i;:::-;;;;;;;;;9708:5;9714:6;9708:13;;;;;;;;:::i;:::-;;;;;;;;;;:32;9669:83;9764:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9529:254;;9467:316;;:::o;9229:230::-;9307:6;9326:126;9342:5;:12;9338:1;:16;9326:126;;;9392:7;9380:5;9386:1;9380:8;;;;;;;;:::i;:::-;;;;;;;:19;9376:65;;;9420:5;;9376:65;9356:3;;;;:::i;:::-;;;;9326:126;;222:180:1;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;-1:-1:-1;373:23:1;;222:180;-1:-1:-1;222:180:1:o;589:131::-;-1:-1:-1;;;;;664:31:1;;654:42;;644:70;;710:1;707;700:12;725:247;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;977:315::-;1045:6;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:52;;;1122:1;1119;1112:12;1074:52;1161:9;1148:23;1180:31;1205:5;1180:31;:::i;:::-;1230:5;1282:2;1267:18;;;;1254:32;;-1:-1:-1;;;977:315:1:o;1932:127::-;1993:10;1988:3;1984:20;1981:1;1974:31;2024:4;2021:1;2014:15;2048:4;2045:1;2038:15;2064:1115;2148:6;2179:2;2222;2210:9;2201:7;2197:23;2193:32;2190:52;;;2238:1;2235;2228:12;2190:52;2278:9;2265:23;2307:18;2348:2;2340:6;2337:14;2334:34;;;2364:1;2361;2354:12;2334:34;2402:6;2391:9;2387:22;2377:32;;2447:7;2440:4;2436:2;2432:13;2428:27;2418:55;;2469:1;2466;2459:12;2418:55;2505:2;2492:16;2527:2;2523;2520:10;2517:36;;;2533:18;;:::i;:::-;2579:2;2576:1;2572:10;2611:2;2605:9;2674:2;2670:7;2665:2;2661;2657:11;2653:25;2645:6;2641:38;2729:6;2717:10;2714:22;2709:2;2697:10;2694:18;2691:46;2688:72;;;2740:18;;:::i;:::-;2776:2;2769:22;2826:18;;;2860:15;;;;-1:-1:-1;2902:11:1;;;2898:20;;;2930:19;;;2927:39;;;2962:1;2959;2952:12;2927:39;2986:11;;;;3006:142;3022:6;3017:3;3014:15;3006:142;;;3088:17;;3076:30;;3039:12;;;;3126;;;;3006:142;;;3167:6;2064:1115;-1:-1:-1;;;;;;;;2064:1115:1:o;3184:632::-;3355:2;3407:21;;;3477:13;;3380:18;;;3499:22;;;3326:4;;3355:2;3578:15;;;;3552:2;3537:18;;;3326:4;3621:169;3635:6;3632:1;3629:13;3621:169;;;3696:13;;3684:26;;3765:15;;;;3730:12;;;;3657:1;3650:9;3621:169;;;-1:-1:-1;3807:3:1;;3184:632;-1:-1:-1;;;;;;3184:632:1:o;3821:127::-;3882:10;3877:3;3873:20;3870:1;3863:31;3913:4;3910:1;3903:15;3937:4;3934:1;3927:15;3953:127;4014:10;4009:3;4005:20;4002:1;3995:31;4045:4;4042:1;4035:15;4069:4;4066:1;4059:15;4085:135;4124:3;-1:-1:-1;;4145:17:1;;4142:43;;;4165:18;;:::i;:::-;-1:-1:-1;4212:1:1;4201:13;;4085:135::o;4225:168::-;4265:7;4331:1;4327;4323:6;4319:14;4316:1;4313:21;4308:1;4301:9;4294:17;4290:45;4287:71;;;4338:18;;:::i;:::-;-1:-1:-1;4378:9:1;;4225:168::o;4398:128::-;4438:3;4469:1;4465:6;4462:1;4459:13;4456:39;;;4475:18;;:::i;:::-;-1:-1:-1;4511:9:1;;4398:128::o;4784:138::-;4863:13;;4885:31;4863:13;4885:31;:::i;4927:165::-;5005:13;;5058:8;5047:20;;5037:31;;5027:59;;5082:1;5079;5072:12;5097:164;5174:13;;5227:1;5216:20;;;5206:31;;5196:59;;5251:1;5248;5241:12;5266:192;5345:13;;-1:-1:-1;;;;;5387:46:1;;5377:57;;5367:85;;5448:1;5445;5438:12;5463:1186;5626:6;5634;5642;5650;5658;5666;5674;5682;5690;5698;5706:7;5715;5769:3;5757:9;5748:7;5744:23;5740:33;5737:53;;;5786:1;5783;5776:12;5737:53;5818:9;5812:16;5868:26;5861:5;5857:38;5850:5;5847:49;5837:77;;5910:1;5907;5900:12;5837:77;5933:5;-1:-1:-1;5957:49:1;6002:2;5987:18;;5957:49;:::i;:::-;5947:59;;6025:49;6070:2;6059:9;6055:18;6025:49;:::i;:::-;6015:59;;6093:49;6138:2;6127:9;6123:18;6093:49;:::i;:::-;6083:59;;6161:49;6205:3;6194:9;6190:19;6161:49;:::i;:::-;6151:59;;6229:48;6272:3;6261:9;6257:19;6229:48;:::i;:::-;6219:58;;6296:48;6339:3;6328:9;6324:19;6296:48;:::i;:::-;6286:58;;6363:50;6408:3;6397:9;6393:19;6363:50;:::i;:::-;6353:60;;6453:3;6442:9;6438:19;6432:26;6422:36;;6498:3;6487:9;6483:19;6477:26;6467:36;;6523:50;6568:3;6557:9;6553:19;6523:50;:::i;:::-;6512:61;;6593:50;6638:3;6627:9;6623:19;6593:50;:::i;:::-;6582:61;;5463:1186;;;;;;;;;;;;;;:::o;6929:576::-;7014:6;7022;7030;7083:2;7071:9;7062:7;7058:23;7054:32;7051:52;;;7099:1;7096;7089:12;7051:52;7131:9;7125:16;7184:5;7181:1;7170:20;7163:5;7160:31;7150:59;;7205:1;7202;7195:12;7150:59;7278:2;7263:18;;7257:25;7228:5;;-1:-1:-1;7291:33:1;7257:25;7291:33;:::i;:::-;7395:2;7380:18;;7374:25;7343:7;;-1:-1:-1;7443:10:1;7430:24;;7418:37;;7408:65;;7469:1;7466;7459:12;7408:65;7492:7;7482:17;;;6929:576;;;;;:::o;7510:125::-;7550:4;7578:1;7575;7572:8;7569:34;;;7583:18;;:::i;:::-;-1:-1:-1;7620:9:1;;7510:125::o;7640:221::-;7679:4;7708:10;7768;;;;7738;;7790:12;;;7787:38;;;7805:18;;:::i;:::-;7842:13;;7640:221;-1:-1:-1;;;7640:221:1:o;7866:217::-;7906:1;7932;7922:132;;7976:10;7971:3;7967:20;7964:1;7957:31;8011:4;8008:1;8001:15;8039:4;8036:1;8029:15;7922:132;-1:-1:-1;8068:9:1;;7866:217::o;8088:163::-;8166:13;;8219:6;8208:18;;8198:29;;8188:57;;8241:1;8238;8231:12;8256:164;8332:13;;8381;;8374:21;8364:32;;8354:60;;8410:1;8407;8400:12;8425:822;8539:6;8547;8555;8563;8571;8579;8587;8640:3;8628:9;8619:7;8615:23;8611:33;8608:53;;;8657:1;8654;8647:12;8608:53;8689:9;8683:16;8708:31;8733:5;8708:31;:::i;:::-;8758:5;-1:-1:-1;8782:47:1;8825:2;8810:18;;8782:47;:::i;:::-;8772:57;;8848:48;8892:2;8881:9;8877:18;8848:48;:::i;:::-;8838:58;;8915:48;8959:2;8948:9;8944:18;8915:48;:::i;:::-;8905:58;;8982:49;9026:3;9015:9;9011:19;8982:49;:::i;:::-;8972:59;;9076:3;9065:9;9061:19;9055:26;9125:4;9116:7;9112:18;9103:7;9100:31;9090:59;;9145:1;9142;9135:12;9090:59;9168:7;-1:-1:-1;9194:47:1;9236:3;9221:19;;9194:47;:::i;:::-;9184:57;;8425:822;;;;;;;;;;:::o;10503:245::-;10582:6;10590;10643:2;10631:9;10622:7;10618:23;10614:32;10611:52;;;10659:1;10656;10649:12;10611:52;-1:-1:-1;;10682:16:1;;10738:2;10723:18;;;10717:25;10682:16;;10717:25;;-1:-1:-1;10503:245:1:o;11077:251::-;11147:6;11200:2;11188:9;11179:7;11175:23;11171:32;11168:52;;;11216:1;11213;11206:12;11168:52;11248:9;11242:16;11267:31;11292:5;11267:31;:::i;11612:426::-;11741:3;11779:6;11773:13;11804:1;11814:129;11828:6;11825:1;11822:13;11814:129;;;11926:4;11910:14;;;11906:25;;11900:32;11887:11;;;11880:53;11843:12;11814:129;;;11961:6;11958:1;11955:13;11952:48;;;11996:1;11987:6;11982:3;11978:16;11971:27;11952:48;-1:-1:-1;12016:16:1;;;;;11612:426;-1:-1:-1;;11612:426:1:o;12043:202::-;12110:6;12163:2;12151:9;12142:7;12138:23;12134:32;12131:52;;;12179:1;12176;12169:12;12131:52;12202:37;12229:9;12202:37;:::i;13151:127::-;13212:10;13207:3;13203:20;13200:1;13193:31;13243:4;13240:1;13233:15;13267:4;13264:1;13257:15
Swarm Source
ipfs://321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
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.