Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
543429 | 12 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Voter
Compiler Version
v0.8.22+commit.4fc1097e
ZkSolc Version
v1.5.7
Contract Source Code (Solidity)
/** *Submitted for verification at abscan.org on 2025-02-01 */ // Sources flattened with hardhat v2.19.5 https://hardhat.org // SPDX-License-Identifier: MIT // File @openzeppelin/contracts/token/ERC20/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } // File @openzeppelin/contracts/utils/math/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol) pragma solidity ^0.8.0; /** * @dev Standard math utilities missing in the Solidity language. */ library Math { enum Rounding { Down, // Toward negative infinity Up, // Toward infinity Zero // Toward zero } /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a > b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow. return (a & b) + (a ^ b) / 2; } /** * @dev Returns the ceiling of the division of two numbers. * * This differs from standard division with `/` in that it rounds up instead * of rounding down. */ function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b - 1) / b can overflow on addition, so we distribute. return a == 0 ? 0 : (a - 1) / b + 1; } /** * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0 * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) * with further edits by Uniswap Labs also under MIT license. */ function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) { unchecked { // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256 // variables such that product = prod1 * 2^256 + prod0. uint256 prod0; // Least significant 256 bits of the product uint256 prod1; // Most significant 256 bits of the product assembly { let mm := mulmod(x, y, not(0)) prod0 := mul(x, y) prod1 := sub(sub(mm, prod0), lt(mm, prod0)) } // Handle non-overflow cases, 256 by 256 division. if (prod1 == 0) { // Solidity will revert if denominator == 0, unlike the div opcode on its own. // The surrounding unchecked block does not change this fact. // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic. return prod0 / denominator; } // Make sure the result is less than 2^256. Also prevents denominator == 0. require(denominator > prod1, "Math: mulDiv overflow"); /////////////////////////////////////////////// // 512 by 256 division. /////////////////////////////////////////////// // Make division exact by subtracting the remainder from [prod1 prod0]. uint256 remainder; assembly { // Compute remainder using mulmod. remainder := mulmod(x, y, denominator) // Subtract 256 bit number from 512 bit number. prod1 := sub(prod1, gt(remainder, prod0)) prod0 := sub(prod0, remainder) } // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1. // See https://cs.stackexchange.com/q/138556/92363. // Does not overflow because the denominator cannot be zero at this stage in the function. uint256 twos = denominator & (~denominator + 1); assembly { // Divide denominator by twos. denominator := div(denominator, twos) // Divide [prod1 prod0] by twos. prod0 := div(prod0, twos) // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one. twos := add(div(sub(0, twos), twos), 1) } // Shift in bits from prod1 into prod0. prod0 |= prod1 * twos; // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for // four bits. That is, denominator * inv = 1 mod 2^4. uint256 inverse = (3 * denominator) ^ 2; // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works // in modular arithmetic, doubling the correct bits in each step. inverse *= 2 - denominator * inverse; // inverse mod 2^8 inverse *= 2 - denominator * inverse; // inverse mod 2^16 inverse *= 2 - denominator * inverse; // inverse mod 2^32 inverse *= 2 - denominator * inverse; // inverse mod 2^64 inverse *= 2 - denominator * inverse; // inverse mod 2^128 inverse *= 2 - denominator * inverse; // inverse mod 2^256 // Because the division is now exact we can divide by multiplying with the modular inverse of denominator. // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1 // is no longer required. result = prod0 * inverse; return result; } } /** * @notice Calculates x * y / denominator with full precision, following the selected rounding direction. */ function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) { uint256 result = mulDiv(x, y, denominator); if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) { result += 1; } return result; } /** * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down. * * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11). */ function sqrt(uint256 a) internal pure returns (uint256) { if (a == 0) { return 0; } // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target. // // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`. // // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)` // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))` // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)` // // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit. uint256 result = 1 << (log2(a) >> 1); // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128, // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision // into the expected uint128 result. unchecked { result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; return min(result, a / result); } } /** * @notice Calculates sqrt(a), following the selected rounding direction. */ function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = sqrt(a); return result + (rounding == Rounding.Up && result * result < a ? 1 : 0); } } /** * @dev Return the log in base 2, rounded down, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 128; } if (value >> 64 > 0) { value >>= 64; result += 64; } if (value >> 32 > 0) { value >>= 32; result += 32; } if (value >> 16 > 0) { value >>= 16; result += 16; } if (value >> 8 > 0) { value >>= 8; result += 8; } if (value >> 4 > 0) { value >>= 4; result += 4; } if (value >> 2 > 0) { value >>= 2; result += 2; } if (value >> 1 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 2, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log2(value); return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0); } } /** * @dev Return the log in base 10, rounded down, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10 ** 64) { value /= 10 ** 64; result += 64; } if (value >= 10 ** 32) { value /= 10 ** 32; result += 32; } if (value >= 10 ** 16) { value /= 10 ** 16; result += 16; } if (value >= 10 ** 8) { value /= 10 ** 8; result += 8; } if (value >= 10 ** 4) { value /= 10 ** 4; result += 4; } if (value >= 10 ** 2) { value /= 10 ** 2; result += 2; } if (value >= 10 ** 1) { result += 1; } } return result; } /** * @dev Return the log in base 10, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log10(value); return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0); } } /** * @dev Return the log in base 256, rounded down, of a positive value. * Returns 0 if given 0. * * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. */ function log256(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 16; } if (value >> 64 > 0) { value >>= 64; result += 8; } if (value >> 32 > 0) { value >>= 32; result += 4; } if (value >> 16 > 0) { value >>= 16; result += 2; } if (value >> 8 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 256, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log256(value); return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0); } } } // File contracts/interfaces/IBribe.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IBribe { function _deposit(uint amount, uint tokenId) external; function _withdraw(uint amount, uint tokenId) external; function getRewardForOwner(uint tokenId, address[] memory tokens) external; function notifyRewardAmount(address token, uint amount) external; function left(address token) external view returns (uint); } // File contracts/interfaces/IBribeFactory.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IBribeFactory { function createBribe() external returns (address); } // File contracts/interfaces/IGauge.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IGauge { function notifyRewardAmount(address token, uint amount) external; function getReward(address account, address[] memory tokens) external; function claimFees() external returns (uint claimed0, uint claimed1); function left(address token) external view returns (uint); } // File contracts/interfaces/IGaugeFactory.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IGaugeFactory { function createGauge(address, address, address) external returns (address); } // File contracts/interfaces/IMinter.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IMinter { function update_period() external returns (uint); } // File contracts/interfaces/IPair.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IPair { function burn(address to) external returns (uint amount0, uint amount1); function claimFees() external returns (uint, uint); function getAmountOut(uint amountIn, address tokenIn) external view returns (uint); function getReserves() external view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast); function mint(address to) external returns (uint liquidity); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; function stable() external view returns (bool); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function tokens() external returns (address, address); function transferFrom(address src, address dst, uint amount) external returns (bool); } // File contracts/interfaces/IPairFactory.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IPairFactory { function admin() external view returns (address); function feeManagers(address feeManager) external view returns (bool); function allPairsLength() external view returns (uint); function isPair(address pair) external view returns (bool); function pairCodeHash() external pure returns (bytes32); function getPair(address tokenA, address token, bool stable) external view returns (address); function createPair(address tokenA, address tokenB, bool stable) external returns (address pair); function getInitializable() external view returns (address, address, bool); function setPause(bool _state) external; function isPaused() external view returns (bool); function getFee(bool _stable) external view returns(uint256); function getRealFee(address _pair) external view returns(uint256); } // File contracts/interfaces/IVotingEscrow.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; interface IVotingEscrow { struct Point { int128 bias; int128 slope; // # -dweight / dt uint256 ts; uint256 blk; // block } function user_point_epoch(uint tokenId) external view returns (uint); function epoch() external view returns (uint); function user_point_history(uint tokenId, uint loc) external view returns (Point memory); function point_history(uint loc) external view returns (Point memory); function checkpoint() external; function deposit_for(uint tokenId, uint value) external; function token() external view returns (address); function user_point_history__ts(uint tokenId, uint idx) external view returns (uint); function locked__end(uint _tokenId) external view returns (uint); function locked__amount(uint _tokenId) external view returns (uint); function approve(address spender, uint tokenId) external; function balanceOfNFT(uint) external view returns (uint); function isApprovedOrOwner(address, uint) external view returns (bool); function ownerOf(uint) external view returns (address); function transferFrom(address, address, uint) external; function totalSupply() external view returns (uint); function supply() external view returns (uint); function create_lock_for(uint, uint, address) external returns (uint); function lockVote(uint tokenId) external; function isVoteExpired(uint tokenId) external view returns (bool); function voteExpiry(uint _tokenId) external view returns (uint); function attach(uint tokenId) external; function detach(uint tokenId) external; function voting(uint tokenId) external; function abstain(uint tokenId) external; function voted(uint tokenId) external view returns (bool); function withdraw(uint tokenId) external; function create_lock(uint value, uint duration) external returns (uint); function setVoter(address voter) external; function balanceOf(address owner) external view returns (uint); function safeTransferFrom(address from, address to, uint tokenId) external; function burn(uint _tokenId) external; function setAdmin(address _admin) external; function setArtProxy(address _proxy) external; } // File contracts/Voter.sol // Original license: SPDX_License_Identifier: MIT pragma solidity 0.8.22; contract Voter { address public immutable _ve; // the ve token that governs these contracts address public immutable factory; // the BaseV1Factory address internal immutable base; address public gaugeFactory; address public immutable bribeFactory; uint internal constant DURATION = 7 days; // rewards are released over 7 days address public minter; address public admin; address public pendingAdmin; uint256 public whitelistingFee; bool public permissionMode; uint public totalWeight; // total voting weight address[] public allGauges; // all gauges viable for incentives mapping(address => address) public gauges; // pair => maturity => gauge mapping(address => address) public poolForGauge; // gauge => pool mapping(address => address) public bribes; // gauge => bribe mapping(address => uint256) public weights; // gauge => weight mapping(uint => mapping(address => uint256)) public votes; // nft => gauge => votes mapping(uint => address[]) public gaugeVote; // nft => gauge mapping(uint => uint) public usedWeights; // nft => total voting weight of user mapping(address => bool) public isGauge; mapping(address => bool) public isLive; // gauge => status (live or not) mapping(address => bool) public feeManagers; mapping(address => bool) public isWhitelisted; mapping(address => mapping(address => bool)) public isReward; mapping(address => mapping(address => bool)) public isBribe; mapping(address => uint) public claimable; uint internal index; mapping(address => uint) internal supplyIndex; event GaugeCreated(address indexed gauge, address creator, address indexed bribe, address indexed pair); event Voted(address indexed voter, uint tokenId, uint256 weight); event Abstained(uint tokenId, uint256 weight); event Deposit(address indexed lp, address indexed gauge, uint tokenId, uint amount); event Withdraw(address indexed lp, address indexed gauge, uint tokenId, uint amount); event NotifyReward(address indexed sender, address indexed reward, uint amount); event DistributeReward(address indexed sender, address indexed gauge, uint amount); event Attach(address indexed owner, address indexed gauge, uint tokenId); event Detach(address indexed owner, address indexed gauge, uint tokenId); event Whitelisted(address indexed whitelister, address indexed token); event Delisted(address indexed delister, address indexed token); event GaugeKilled(address indexed gauge); event GaugeRemoved(address indexed gauge, address indexed bribe, address indexed pair); event GaugeRevived(address indexed gauge); event GaugeNotProcessed(address indexed gauge); event GaugeProcessed(address indexed gauge); event ErrorClaimingGaugeRewards(address indexed gauge, address[] tokens); event ErrorClaimingBribeRewards(address indexed bribe, address[] tokens); event ErrorClaimingGaugeFees(address indexed gauge); event ErrorClaimingBribeFees(address indexed bribe, uint tokenId, address[] tokens); modifier onlyAdmin() { require(msg.sender == admin, "Voter: only admin"); _; } /// @dev Only calls from the enabled fee managers are accepted. modifier onlyFeeManagers() { require(feeManagers[msg.sender], 'Voter: only fee manager'); _; } modifier checkPermissionMode() { if(permissionMode) { require(msg.sender == admin, "Permission Mode Is Active"); } _; } constructor(address __ve, address _factory, address _gauges, address _bribes) { require( __ve != address(0) && _factory != address(0) && _gauges != address(0) && _bribes != address(0), "Voter: zero address provided in constructor" ); _ve = __ve; factory = _factory; base = IVotingEscrow(__ve).token(); gaugeFactory = _gauges; bribeFactory = _bribes; minter = msg.sender; admin = msg.sender; permissionMode = false; whitelistingFee = 160000e18; feeManagers[msg.sender] = true; feeManagers[0x0c5D52630c982aE81b78AB2954Ddc9EC2797bB9c] = true; feeManagers[0x726461FA6e788bd8a79986D36F1992368A3e56eA] = true; } // simple re-entrancy check uint internal _unlocked = 1; modifier lock() { require(_unlocked == 1); _unlocked = 2; _; _unlocked = 1; } function initialize(address[] memory _tokens, address _minter) external { require(msg.sender == minter); for (uint i = 0; i < _tokens.length; i++) { _whitelist(_tokens[i]); } minter = _minter; } function setAdmin(address _admin) external onlyAdmin { pendingAdmin = _admin; } function acceptAdmin() external { require(msg.sender == pendingAdmin); admin = pendingAdmin; } function enablePermissionMode() external onlyAdmin { require(!permissionMode, "Permission Mode Enabled"); permissionMode = true; } function disablePermissionMode() external onlyAdmin { require(permissionMode, "Permission Mode Disabled"); permissionMode = false; } function manageFeeManager(address feeManager, bool _value) external onlyAdmin { feeManagers[feeManager] = _value; } function setReward(address _gauge, address _token, bool _status) external onlyAdmin { isReward[_gauge][_token] = _status; } function setBribe(address _bribe, address _token, bool _status) external onlyAdmin { isBribe[_bribe][_token] = _status; } function setWhitelistingFee(uint256 _fee) external onlyFeeManagers { require(_fee > 0, 'Fee must be greater than zero'); whitelistingFee = _fee; } function killGauge(address _gauge) external onlyAdmin { require(isLive[_gauge], "gauge is not live"); distribute(_gauge); isLive[_gauge] = false; claimable[_gauge] = 0; emit GaugeKilled(_gauge); } function reviveGauge(address _gauge) external onlyAdmin { require(!isLive[_gauge], "gauge is live"); isLive[_gauge] = true; emit GaugeRevived(_gauge); } function removeGauge(address _gauge) external onlyAdmin { require(!isLive[_gauge], "gauge is live"); address pair = poolForGauge[_gauge]; require(IPairFactory(factory).isPair(pair), "pair does not exist"); (address tokenA, address tokenB) = IPair(pair).tokens(); require(gauges[pair] != address(0x0), "gauge does not exist"); address bribe = bribes[_gauge]; gauges[pair] = address(0x0); poolForGauge[_gauge] = address(0x0); bribes[_gauge] = address(0x0); isReward[_gauge][tokenA] = false; isReward[_gauge][tokenB] = false; isReward[_gauge][base] = false; isBribe[bribe][tokenA] = false; isBribe[bribe][tokenB] = false; isGauge[_gauge] = false; emit GaugeRemoved(_gauge, bribe, pair); } function reset(uint _tokenId) external { require(IVotingEscrow(_ve).isApprovedOrOwner(msg.sender, _tokenId)); _reset(_tokenId); IVotingEscrow(_ve).abstain(_tokenId); } function _reset(uint _tokenId) internal { require(IVotingEscrow(_ve).isVoteExpired(_tokenId),"Vote Locked!"); address[] storage _gaugeVote = gaugeVote[_tokenId]; uint _gaugeVoteCnt = _gaugeVote.length; uint256 _totalWeight = 0; for (uint i = 0; i < _gaugeVoteCnt; i++) { address _gauge = _gaugeVote[i]; uint256 _votes = votes[_tokenId][_gauge]; if (_votes != 0) { _updateFor(_gauge); weights[_gauge] -= _votes; votes[_tokenId][_gauge] -= _votes; IBribe(bribes[_gauge])._withdraw(uint256(_votes), _tokenId); _totalWeight += _votes; emit Abstained(_tokenId, _votes); } } totalWeight -= uint256(_totalWeight); usedWeights[_tokenId] = 0; delete gaugeVote[_tokenId]; } function poke(uint _tokenId) external { require(IVotingEscrow(_ve).isApprovedOrOwner(msg.sender, _tokenId)); address[] memory _gaugeVote = gaugeVote[_tokenId]; uint _gaugeCnt = _gaugeVote.length; uint256[] memory _weights = new uint256[](_gaugeCnt); for (uint i = 0; i < _gaugeCnt; i++) { _weights[i] = votes[_tokenId][_gaugeVote[i]]; } _vote(_tokenId, _gaugeVote, _weights); } function _vote(uint _tokenId, address[] memory _gaugeVote, uint256[] memory _weights) internal { _reset(_tokenId); // Lock vote for 1 WEEK IVotingEscrow(_ve).lockVote(_tokenId); uint _gaugeCnt = _gaugeVote.length; uint256 _weight = IVotingEscrow(_ve).balanceOfNFT(_tokenId); uint256 _totalVoteWeight = 0; uint256 _totalWeight = 0; uint256 _usedWeight = 0; for (uint i = 0; i < _gaugeCnt; i++) { _totalVoteWeight += _weights[i]; } for (uint i = 0; i < _gaugeCnt; i++) { address _gauge = _gaugeVote[i]; if (isGauge[_gauge]) { uint256 _gaugeWeight = _weights[i] * _weight / _totalVoteWeight; require(votes[_tokenId][_gauge] == 0); require(_gaugeWeight != 0); _updateFor(_gauge); gaugeVote[_tokenId].push(_gauge); weights[_gauge] += _gaugeWeight; votes[_tokenId][_gauge] += _gaugeWeight; IBribe(bribes[_gauge])._deposit(_gaugeWeight, _tokenId); _usedWeight += _gaugeWeight; _totalWeight += _gaugeWeight; emit Voted(msg.sender, _tokenId, _gaugeWeight); } } if (_usedWeight > 0) IVotingEscrow(_ve).voting(_tokenId); totalWeight += _totalWeight; usedWeights[_tokenId] = _usedWeight; } // @param _tokenId The id of the veNFT to vote with // @param _gaugeVote The list of gauges to vote for // @param _weights The list of weights to vote for each gauge // @notice the sum of weights is the total weight of the veNFT at max function vote(uint tokenId, address[] calldata _gaugeVote, uint256[] calldata _weights) external { require(IVotingEscrow(_ve).isApprovedOrOwner(msg.sender, tokenId)); require(_gaugeVote.length == _weights.length); uint _lockEnd = IVotingEscrow(_ve).locked__end(tokenId); require(_nextPeriod() <= _lockEnd, "lock expires soon"); _vote(tokenId, _gaugeVote, _weights); } function whitelist(address _token) public checkPermissionMode { _safeTransferFrom(base, msg.sender, address(0), whitelistingFee); _whitelist(_token); } function whitelistBatch(address[] memory _tokens) external onlyAdmin { for (uint i = 0; i < _tokens.length; i++) { _whitelist(_tokens[i]); } } function _whitelist(address _token) internal { require(!isWhitelisted[_token]); isWhitelisted[_token] = true; emit Whitelisted(msg.sender, _token); } function delist(address _token) public onlyAdmin { require(isWhitelisted[_token], "!whitelisted"); isWhitelisted[_token] = false; emit Delisted(msg.sender, _token); } function createGauge(address _pair) external returns (address) { require(gauges[_pair] == address(0x0), "exists"); require(IPairFactory(factory).isPair(_pair), "!pair"); (address _tokenA, address _tokenB) = IPair(_pair).tokens(); require(isWhitelisted[_tokenA] && isWhitelisted[_tokenB], "!whitelisted"); address _bribe = IBribeFactory(bribeFactory).createBribe(); address _gauge = IGaugeFactory(gaugeFactory).createGauge(_pair, _bribe, _ve); IERC20(base).approve(_gauge, type(uint).max); bribes[_gauge] = _bribe; gauges[_pair] = _gauge; poolForGauge[_gauge] = _pair; isGauge[_gauge] = true; isLive[_gauge] = true; isReward[_gauge][_tokenA] = true; isReward[_gauge][_tokenB] = true; isReward[_gauge][base] = true; isBribe[_bribe][_tokenA] = true; isBribe[_bribe][_tokenB] = true; _updateFor(_gauge); allGauges.push(_gauge); emit GaugeCreated(_gauge, msg.sender, _bribe, _pair); return _gauge; } function attachTokenToGauge(uint tokenId, address account) external { require(isGauge[msg.sender]); if (tokenId > 0) IVotingEscrow(_ve).attach(tokenId); emit Attach(account, msg.sender, tokenId); } function emitDeposit(uint tokenId, address account, uint amount) external { require(isGauge[msg.sender]); emit Deposit(account, msg.sender, tokenId, amount); } function detachTokenFromGauge(uint tokenId, address account) external { require(isGauge[msg.sender]); if (tokenId > 0) IVotingEscrow(_ve).detach(tokenId); emit Detach(account, msg.sender, tokenId); } function emitWithdraw(uint tokenId, address account, uint amount) external { require(isGauge[msg.sender]); emit Withdraw(account, msg.sender, tokenId, amount); } function length() external view returns (uint) { return allGauges.length; } // @notice called by Minter contract to distribute weekly rewards // @param _amount the amount of tokens distributed function notifyRewardAmount(uint amount) external { _safeTransferFrom(base, msg.sender, address(this), amount); // transfer the distro in uint256 _ratio = amount * 1e18 / totalWeight; // 1e18 adjustment is removed during claim if (_ratio > 0) { index += _ratio; } emit NotifyReward(msg.sender, base, amount); } function updateFor(address[] memory _gauges) external { for (uint i = 0; i < _gauges.length; i++) { _updateFor(_gauges[i]); } } function updateForRange(uint start, uint end) public { for (uint i = start; i < end; i++) { _updateFor(allGauges[i]); } } function updateAll() external { updateForRange(0, allGauges.length); } // @notice update a gauge eligibility for rewards to the current index // @param _gauge the gauge to update function updateGauge(address _gauge) external { _updateFor(_gauge); } function _updateFor(address _gauge) internal { uint256 _supplied = weights[_gauge]; if (_supplied > 0) { uint _supplyIndex = supplyIndex[_gauge]; uint _index = index; // get global index0 for accumulated distro supplyIndex[_gauge] = _index; // update _gauge current position to global position uint _delta = _index - _supplyIndex; // see if there is any difference that need to be accrued if (_delta > 0) { uint _share = uint(_supplied) * _delta / 1e18; // add accrued difference for each supplied token if (isLive[_gauge]) { claimable[_gauge] += _share; } } } else { supplyIndex[_gauge] = index; // new users are set to the default global state } } // @notice allow a gauge depositor to claim earned rewards if any // @param _gauges list of gauges contracts to claim rewards on // @param _tokens list of tokens to claim function claimRewards(address[] memory _gauges, address[][] memory _tokens) external { for (uint i = 0; i < _gauges.length; i++) { try IGauge(_gauges[i]).getReward(msg.sender, _tokens[i]) { } catch { emit ErrorClaimingGaugeRewards(_gauges[i], _tokens[i]); } } } // @notice allow a voter to claim earned bribes if any // @param _bribes list of bribes contracts to claims bribes on // @param _tokens list of the tokens to claim // @param _tokenId the ID of veNFT to claim bribes for function claimBribes(address[] memory _bribes, address[][] memory _tokens, uint _tokenId) external { require(IVotingEscrow(_ve).isApprovedOrOwner(msg.sender, _tokenId)); for (uint i = 0; i < _bribes.length; i++) { try IBribe(_bribes[i]).getRewardForOwner(_tokenId, _tokens[i]) { } catch { emit ErrorClaimingBribeRewards(_bribes[i], _tokens[i]); } } } // @notice allow voter to claim earned fees // @param _fees list of bribes contracts to claim fees on // @param _tokens list of the tokens to claim // @param _tokenId the ID of veNFT to claim fees for function claimFees(address[] memory _fees, address[][] memory _tokens, uint _tokenId) external { require(IVotingEscrow(_ve).isApprovedOrOwner(msg.sender, _tokenId)); for (uint i = 0; i < _fees.length; i++) { try IBribe(_fees[i]).getRewardForOwner(_tokenId, _tokens[i]) { } catch { emit ErrorClaimingBribeFees(_fees[i], _tokenId, _tokens[i]); } } } // @notice distribute earned fees to the bribe contract for a given gauge // @param _gauges the gauges to distribute fees for function distributeFees(address[] memory _gauges) external { for (uint i = 0; i < _gauges.length; i++) { try IGauge(_gauges[i]).claimFees() { } catch { emit ErrorClaimingGaugeFees(_gauges[i]); } } } // @notice distribute earned fees to the bribe contract for all gauges function distroFees() external { for (uint i = 0; i < allGauges.length; i++) { try IGauge(allGauges[i]).claimFees() { } catch { emit ErrorClaimingGaugeFees(allGauges[i]); } } } // @notice distribute fair share of rewards to a gauge // @param _gauge the gauge to distribute rewards to function distribute(address _gauge) public lock { IMinter(minter).update_period(); _updateFor(_gauge); uint _claimable = claimable[_gauge]; if (_claimable > IGauge(_gauge).left(base) && _claimable / DURATION > 0) { claimable[_gauge] = 0; IGauge(_gauge).notifyRewardAmount(base, _claimable); emit DistributeReward(msg.sender, _gauge, _claimable); } } function distro() external { distributeRange(0, allGauges.length); } function distributeRange(uint start, uint finish) public { for (uint x = start; x < finish; x++) { try this.distribute(allGauges[x]) { emit GaugeProcessed(allGauges[x]); } catch { emit GaugeNotProcessed(allGauges[x]); } } } function distributeGauges(address[] memory _gauges) external { for (uint x = 0; x < _gauges.length; x++) { try this.distribute(_gauges[x]) { emit GaugeProcessed(allGauges[x]); } catch { emit GaugeNotProcessed(allGauges[x]); } } } // @notice current active vote period // @return the UNIX timestamp of the beginning of the current vote period function _activePeriod() internal view returns (uint activePeriod) { activePeriod = block.timestamp / DURATION * DURATION; } // @notice next vote period // @return the UNIX timestamp of the beginning of the next vote period function _nextPeriod() internal view returns(uint nextPeriod) { nextPeriod = (block.timestamp + DURATION) / DURATION * DURATION; } function _safeTransferFrom(address token, address from, address to, uint256 value) internal { require(token.code.length > 0); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.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
[{"inputs":[{"internalType":"address","name":"__ve","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_gauges","type":"address"},{"internalType":"address","name":"_bribes","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"}],"name":"Abstained","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Attach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"Delisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Detach","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DistributeReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"ErrorClaimingBribeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"ErrorClaimingBribeRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"ErrorClaimingGaugeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"ErrorClaimingGaugeRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pair","type":"address"}],"name":"GaugeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"GaugeKilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"GaugeNotProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"GaugeProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":true,"internalType":"address","name":"bribe","type":"address"},{"indexed":true,"internalType":"address","name":"pair","type":"address"}],"name":"GaugeRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"gauge","type":"address"}],"name":"GaugeRevived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"reward","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NotifyReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"}],"name":"Voted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"whitelister","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lp","type":"address"},{"indexed":true,"internalType":"address","name":"gauge","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_ve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allGauges","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"attachTokenToGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bribeFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bribes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_bribes","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claimBribes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_fees","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"},{"internalType":"address[][]","name":"_tokens","type":"address[][]"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"createGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"delist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"detachTokenFromGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disablePermissionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"distributeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"distributeGauges","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"name":"distributeRange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distro","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distroFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enablePermissionMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeManagers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gaugeFactory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"gaugeVote","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gauges","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"address","name":"_minter","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isBribe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isGauge","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"killGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeManager","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"manageFeeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"permissionMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"poke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"poolForGauge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"removeGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"reset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"reviveGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bribe","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setWhitelistingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_gauges","type":"address[]"}],"name":"updateFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"updateForRange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gauge","type":"address"}],"name":"updateGauge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"usedWeights","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address[]","name":"_gaugeVote","type":"address[]"},{"internalType":"uint256[]","name":"_weights","type":"uint256[]"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"votes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"weights","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"whitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"}],"name":"whitelistBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100094b7e5d4179818ea2326b0eaf3c594ce8e5cd08dfc773ff4345547a5ab200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000483bdbdbf60d9650845c8097e002c2241d92ab4500000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff200000000000000000000000015e21a438853afa27ebb53710bfe0f3cfcb6abd60000000000000000000000008583c59b3aca38a72d84fb75fd05d520b57163f4
Deployed Bytecode
0x000400000000000200120000000000020000006004100270000008820340019700030000003103550002000000010355000008820040019d0000000100200190000000280000c13d0000008004000039000000400040043f000000040030008c000000570000413d000000000201043b000000e002200270000008920020009c000000590000a13d000008930020009c000000950000213d000008ab0020009c000000b90000213d000008b70020009c000001760000213d000008bd0020009c000003ec0000213d000008c00020009c000007100000613d000008c10020009c000000570000c13d0000000001000416000000000001004b000000570000c13d0000000001000412001200000001001d001100000000003d000080050100003900000044030000390000000004000415000000120440008a0000010e0000013d0000010004000039000000400040043f0000000002000416000000000002004b000000570000c13d0000001f0230003900000883022001970000010002200039000000400020043f0000001f0530018f000008840630019800000100026000390000003a0000613d000000000701034f000000007807043c0000000004840436000000000024004b000000360000c13d000000000005004b000000470000613d000000000161034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000800030008c000000570000413d000001000200043d000008850020009c000000570000213d000001200100043d000008850010009c000000570000213d000001400300043d000c00000003001d000008850030009c000000570000213d000001600300043d000b00000003001d000008850030009c000005f50000a13d00000000010000190000220400010430000008c20020009c000000aa0000a13d000008c30020009c000001120000213d000008cf0020009c0000026e0000213d000008d50020009c000004f80000213d000008d80020009c00000af10000613d000008d90020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000c00000002001d0000002401100370000000000101043b000b00000001001d000008850010009c000000570000213d0000000001000411000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000000570000613d0000000c0000006b000010a40000c13d000000400200043d0000000c010000290000000000120435000008820020009c000008820200804100000040012002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000800d0200003900000003030000390000093004000041000001490000013d000008940020009c000000fc0000213d000008a00020009c000001cd0000213d000008a60020009c000003f50000213d000008a90020009c0000072e0000613d000008aa0020009c000000570000c13d0000000001000416000000000001004b000000570000c13d0000000001000412001000000001001d000f00200000003d000080050100003900000044030000390000000004000415000000100440008a0000010e0000013d000008da0020009c0000014b0000a13d000008db0020009c000001640000213d000008e10020009c000002bb0000213d000008e40020009c000006250000613d000008e50020009c000000570000c13d0000000001000416000000000001004b000000570000c13d000000030100003900000c0a0000013d000008ac0020009c000002440000213d000008b20020009c000004110000213d000008b50020009c0000073a0000613d000008b60020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000c01000029000000000010043f0000000801000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000400300043d0000000402300039000000000101043b000000000101041a0000088500100198000010290000c13d0000090a01000041000b00000003001d00000000001304350000000c010000290000000000120435000008fd01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c000011640000c13d0000000103000031000000200030008c000000200400003900000000040340190000118e0000013d000008950020009c000002560000213d0000089b0020009c000004350000213d0000089e0020009c000007a90000613d0000089f0020009c000000570000c13d0000000001000416000000000001004b000000570000c13d0000000001000412000e00000001001d000d00600000003d0000800501000039000000440300003900000000040004150000000e0440008a0000000504400210000008fd02000041220221da0000040f00000c0b0000013d000008c40020009c000002800000213d000008ca0020009c0000056a0000213d000008cd0020009c00000afd0000613d000008ce0020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000c00000002001d0000002401100370000000000101043b000b00000001001d000008850010009c000000570000213d0000000001000411000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000000570000613d0000000c0000006b000010e50000c13d000000400200043d0000000c010000290000000000120435000008820020009c000008820200804100000040012002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000800d0200003900000003030000390000092c040000410000000b050000290000099f0000013d000008e60020009c000002b00000a13d000008e70020009c000003030000213d000008ea0020009c000006fb0000613d000008eb0020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008850020009c000000570000213d0000002401100370000000000101043b000c00000001001d000008850010009c000000570000213d000000000020043f0000001301000039000002f90000013d000008dc0020009c000002e50000213d000008df0020009c0000063c0000613d000008e00020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f000000120100003900000ae10000013d000008b80020009c000004450000213d000008bb0020009c000008080000613d000008bc0020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000501000039000000000101041a000000ff00100190000001900000613d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b000010380000c13d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d0000000402000039000000000202041a000b00000002001d000000000201043b000008f5010000410000000000100443000a00000002001d00000004002004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400200043d00000064012000390000000b0300002900000000003104350000002001200039000009160300004100000000003104350000002403200039000000000400041100000000004304350000006403000039000000000032043500000044032000390000000000030435000009170020009c0000154c0000213d000000a003200039000000400030043f000000000302043300000000020004140000000a04000029000000040040008c0000128b0000c13d000000010200003900000001040000310000129d0000013d000008a10020009c000004860000213d000008a40020009c0000082d0000613d000008a50020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b0000000401100370000000000301043b000900000002001d000000000023004b00000bde0000813d0000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f000c00000003001d000008f90130009a000a00000001001d000000000101041a000b00000001001d000008f5010000410000000000100443000000000100041000000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c03000029000000570000613d000000400400043d000008f70100004100000000001404350000000b0100002900000885011001970000000402400039000000000012043500000000010004140000000002000410000000040020008c000002180000613d000008820040009c000008820200004100000000020440190000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000002000410000b00000004001d220221f80000040f0000000b040000290000006003100270000108820030019d0000000c03000029000300000001035500000001002001900000022c0000613d000008880040009c0000154c0000213d000000400040043f0000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f0000000a01000029000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fc040000410000023c0000013d0000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f0000000a01000029000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fb04000041220221f80000040f0000000c030000290000000100200190000000570000613d0000000103300039000000090030006c000001df0000413d00000bde0000013d000008ad0020009c000004be0000213d000008b00020009c000008c30000613d000008b10020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f0000000a0100003900000c060000013d000008960020009c000004e70000213d000008990020009c000008cf0000613d0000089a0020009c000000570000c13d0000000001000416000000000001004b000000570000c13d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000501000039000000000201041a000000ff0020019000000d240000c13d0000093d0220019700000001022001bf000000000021041b0000000001000019000022030001042e000008d00020009c0000057a0000213d000008d30020009c00000b270000613d000008d40020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f000000100100003900000ae10000013d000008c50020009c0000059c0000213d000008c80020009c00000b550000613d000008c90020009c000000570000c13d0000000001000416000000000001004b000000570000c13d000000000103001922021b1c0000040f0000092004000041000000400600043d00000000004604350000000004000411000008850440019700000004056000390000000000450435000900000001001d000800000002001d000c00000006001d0000002401600039000500000003001d0000000000310435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c00000d2e0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000d580000013d000008ec0020009c00000bfb0000613d000008ed0020009c000006200000613d000008ee0020009c000000570000c13d0000000001000416000000000001004b000000570000c13d000000000100041a00000c0b0000013d000008e20020009c0000068d0000613d000008e30020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000201043b0000092001000041000000800010043f00000000010004110000088501100197000000840010043f000a00000002001d000000a40020043f000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c00000ee30000c13d0000000103000031000000200030008c0000002004000039000000000403401900000f080000013d000008dd0020009c000006b80000613d000008de0020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008850020009c000000570000213d0000002401100370000000000101043b000c00000001001d000008850010009c000000570000213d000000000020043f0000001401000039000000200010043f00000040020000390000000001000019220221c50000040f0000000c02000029000000000020043f000000200010043f0000000001000019000000400200003900000ae40000013d000008e80020009c0000070b0000613d000008e90020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000504043b000008880050009c0000154c0000213d00000005045002100000003f06400039000008f306600197000008f40060009c0000154c0000213d00000024022000390000008006600039000000400060043f000000800050043f0000000004240019000000000034004b000000570000213d000000000005004b000003300000613d0000008005000039000000000621034f000000000606043b000008850060009c000000570000213d000000200550003900000000006504350000002002200039000000000042004b000003270000413d0000002402100370000000000402043b000008880040009c000000570000213d0000002302400039000000000032004b00000000050000190000093a050080410000093a02200197000000000002004b00000000060000190000093a060040410000093a0020009c000000000605c019000000000006004b000000570000c13d0000000402400039000000000521034f000000000605043b000008880060009c0000154c0000213d00000005056002100000003f07500039000008f307700197000000400800043d0000000007780019000900000008001d000000000087004b00000000080000390000000108004039000008880070009c0000154c0000213d00000001008001900000154c0000c13d000000400070043f00000009070000290000000007670436000600000007001d00000024044000390000000005450019000000000035004b000000570000213d000000000006004b000016720000c13d000000800100043d000000000001004b00000bde0000613d00000000050000190000037a0000013d0000000002120049000008820020009c00000882020080410000006002200210000008820010009c00000882010080410000004001100210000000000112019f0000000002000414000008820020009c0000088202008041000000c002200210000000000121019f000008fa011001c70000800d0200003900000002030000390000093c04000041220221f80000040f00000001002001900000000c05000029000000570000613d0000000105500039000000800100043d000000000015004b00000bde0000813d00000009010000290000000001010433000000000051004b000015160000a13d000c00000005001d0000000501500210000000a002100039000800000002001d000000000202043300000885032001970000000601100029000700000001001d0000000001010433000a00000001001d000008f5010000410000000000100443000b00000003001d00000004003004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c05000029000000570000613d000000400600043d0000002401600039000000400200003900000000002104350000093b0100004100000000001604350000000401600039000000000200041100000000002104350000000a070000290000000002070433000000440160003900000000002104350000006401600039000000000002004b000003b10000613d000000000300001900000020077000390000000004070433000008850440019700000000014104360000000103300039000000000023004b000003aa0000413d00000000040004140000000b02000029000000040020008c000003cb0000613d0000000001610049000008820010009c00000882010080410000006001100210000008820060009c000008820300004100000000030640190000004003300210000000000131019f000008820040009c0000088204008041000000c003400210000000000131019f000b00000006001d220221f80000040f0000000b060000290000000c050000290000006003100270000108820030019d00030000000103550000000100200190000003cf0000613d000008880060009c0000154c0000213d000000400060043f000003760000013d000000800100043d000000000051004b000015160000a13d00000009010000290000000001010433000000000051004b000015160000a13d00000008010000290000000001010433000008850510019700000007010000290000000003010433000000400100043d00000020020000390000000002210436000000000403043300000000004204350000004002100039000000000004004b000003610000613d000000000600001900000020033000390000000007030433000008850770019700000000027204360000000106600039000000000046004b000003e40000413d000003610000013d000008be0020009c000008d40000613d000008bf0020009c000000570000c13d0000000001000416000000000001004b000000570000c13d000000040100003900000bed0000013d000008a70020009c000008d90000613d000008a80020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000000401100370000000000101043b000000000010043f0000000c01000039000000200010043f00000040020000390000000001000019220221c50000040f0000000c02000029000000000020043f000000200010043f0000000001000019000000400200003900000bec0000013d000008b30020009c0000096b0000613d000008b40020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d0000000001000411000000000010043f0000001101000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff0010019000000fe80000c13d000000400100043d000000440210003900000907030000410000000000320435000000240210003900000017030000390000120b0000013d0000089c0020009c000009a40000613d0000089d0020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f000000110100003900000ae10000013d000008b90020009c00000a350000613d000008ba0020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000c01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000010160000c13d0000000c01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d02000039000000020300003900000914040000410000000c05000029000009a00000013d000008a20020009c00000aad0000613d000008a30020009c000000570000c13d000000640030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000004402100370000000000202043b000b00000002001d0000000401100370000000000101043b000a00000001001d0000000001000411000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000000570000613d000000400100043d00000020021000390000000b0300002900000000003204350000000a020000290000000000210435000008820010009c000008820100804100000040011002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000900011001c70000800d02000039000000030300003900000902040000410000099e0000013d000008ae0020009c00000ad60000613d000008af0020009c000000570000c13d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000002401100370000000000201043b000000000002004b0000000001000039000000010100c039000b00000002001d000000000012004b000000570000c13d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b0000000001000039000000010100603922021be80000040f0000000c01000029000000000010043f0000001101000039000000200010043f00000040020000390000000001000019220221c50000040f000000000301041a0000093d023001970000000b0300002900000b6b0000013d000008970020009c00000aec0000613d000008980020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b0000000702000039000000000202041a000000000021004b000000570000813d22021bbf0000040f00000ac90000013d000008d60020009c00000b6f0000613d000008d70020009c000000570000c13d0000000001000416000000000001004b000000570000c13d0000000701000039000000000101041a000900000001001d000000000001004b00000bde0000613d00000000030000190000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f000c00000003001d000008f90130009a000a00000001001d000000000101041a000b00000001001d000008f5010000410000000000100443000000000100041000000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c03000029000000570000613d000000400400043d000008f70100004100000000001404350000000b0100002900000885011001970000000402400039000000000012043500000000010004140000000002000410000000040020008c0000053e0000613d000008820040009c000008820200004100000000020440190000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000002000410000b00000004001d220221f80000040f0000000b040000290000006003100270000108820030019d0000000c0300002900030000000103550000000100200190000005520000613d000008880040009c0000154c0000213d000000400040043f0000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f0000000a01000029000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fc04000041000005620000013d0000000702000039000000000102041a000000000031004b000015160000a13d000000000020043f0000000a01000029000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fb04000041220221f80000040f0000000c030000290000000100200190000000570000613d0000000103300039000000090030006c000005050000413d00000bde0000013d000008cb0020009c00000bae0000613d000008cc0020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d2202215c0000040f0000000001000019000022030001042e000008d10020009c00000bd60000613d000008d20020009c000000570000c13d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000001801000039000000000101041a000000010010008c000000570000c13d00000002010000390000001802000039000000000012041b0000000101000039000000000201041a0000091901000041000000800010043f00000000010004140000088502200197000000040020008c000010460000c13d0000000103000031000000200030008c000000200400003900000000040340190000106b0000013d000008c60020009c00000be00000613d000008c70020009c000000570000c13d000000640030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000b00000002001d0000002402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000404043b000a00000004001d000008880040009c000000570000213d00000024042000390000000a020000290000000502200210000800000004001d000900000002001d000c00000042001d0000000c0030006b000000570000213d0000004402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000141034f000000000101043b000700000001001d000008880010009c000000570000213d000000240120003900000007020000290000000502200210000400000001001d000600000002001d000500000012001d000000050030006b000000570000213d000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b000000400400043d00000024014000390000000b0300002900000000003104350000092001000041000000000014043500000000010004110000088501100197000300000004001d0000000403400039000000000013043500000000010004140000088502200197000200000002001d000000040020008c0000142d0000c13d0000000104000031000000200040008c0000002004008039000014580000013d00000001040000390000001803000039000000000043041b000000400b00043d000000000002004b0000060d0000613d000000000001004b0000060d0000613d0000000c0000006b0000060d0000613d0000000b0000006b0000060d0000613d000000800020043f000000a00010043f000008860100004100000000001b04350000000001000414000000040020008c00000c0f0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000c3b0000013d0000006401b000390000088e0200004100000000002104350000004401b000390000088f0200004100000000002104350000002401b000390000002b020000390000000000210435000008900100004100000000001b04350000000401b00039000000200200003900000000002104350000088200b0009c000008820b0080410000004001b0021000000891011001c700002204000104300000000001000416000000000001004b000000570000c13d000000010100003900000c0a0000013d0000000001000416000000000001004b000000570000c13d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000501000039000000000201041a000000ff0020019000000d200000c13d0000089001000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000093901000041000000c40010043f000008f2010000410000220400010430000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000c01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000010160000c13d0000000c01000029000000000010043f0000000901000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000400300043d0000090a0200004100000000002304350000088502100197000b00000003001d0000000401300039000a00000002001d0000000000210435000008fd01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c000013750000c13d0000000103000031000000200030008c000000200400003900000000040340190000139f0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b000000400b00043d0000002401b000390000000c040000290000000000410435000009200100004100000000001b0435000000000100041100000885011001970000000403b00039000000000013043500000000010004140000088502200197000000040020008c000b00000002001d00000f740000c13d0000000103000031000000200030008c0000002004000039000000000403401900000fa00000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b000008f5010000410000000000100443000b00000002001d00000004002004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400200043d00000064012000390000000c03000029000000000031043500000044012000390000000003000410000000000031043500000020012000390000091603000041000000000031043500000064030000390000000000320435000000240320003900000000040004110000000000430435000009170020009c0000154c0000213d000000a003200039000000400030043f000000000302043300000000020004140000000b04000029000000040040008c000011b20000c13d00000001020000390000000104000031000011c30000013d0000000001000416000000000001004b000000570000c13d0000000301000039000000000101041a00000885021001970000000001000411000000000021004b000000570000c13d0000000202000039000000000302041a0000088903300197000000000113019f000000000012041b0000000001000019000022030001042e0000000001000416000000000001004b000000570000c13d000000070100003900000bed0000013d000000640030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000002401100370000000000101043b000b00000001001d000008850010009c000000570000213d22021b110000040f0000000202000039000000000202041a00000885022001970000000003000411000000000023004b00000000020000390000000102006039000a00000001001d000000000102001922021be80000040f0000000c01000029000000000010043f000000140100003900000b440000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f000000080100003900000c060000013d0000000001000416000000000001004b000000570000c13d0000000705000039000000000105041a000000000001004b00000bde0000613d000000800a0000390000000006000019000007490000013d000000400a00043d0000000106600039000000000105041a000000000016004b00000bde0000813d000000000050043f000008f90360009a000000000203041a000009040100004100000000001a043500000000010004140000088502200197000000040020008c000007570000c13d0000000103000031000000400030008c00000040040000390000000004034019000007860000013d000a00000003001d000c00000006001d0000088200a0009c000008820300004100000000030a40190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000887011001c7000b0000000a001d220221f80000040f0000000b0a00002900000060031002700000088203300197000000400030008c00000040040000390000000004034019000000600640019000000000056a0019000007730000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000076f0000c13d0000001f07400190000007800000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000007050000390000000c06000029000007940000613d0000001f01400039000000e00110018f000000000aa1001900000000001a004b000000000100003900000001010040390000088800a0009c0000154c0000213d00000001001001900000154c0000c13d0000004000a0043f000000400030008c000007450000813d000000570000013d000000000105041a000000000061004b000015160000a13d000000000050043f0000000a01000029000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d0200003900000002030000390000090504000041220221f80000040f000000070500003900000001002001900000000c06000029000007440000c13d000000570000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000504043b000008880050009c0000154c0000213d00000005045002100000003f06400039000008f306600197000008f40060009c0000154c0000213d00000024022000390000008006600039000000400060043f000000800050043f0000000004240019000000000034004b000000570000213d000000000005004b000007d20000613d0000008003000039000000000521034f000000000505043b000008850050009c000000570000213d000000200330003900000000005304350000002002200039000000000042004b000007c90000413d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b000012050000c13d000000800100043d000000000001004b00000bde0000613d000c00000000001d0000000c010000290000000501100210000000a00110003900000000010104330000088501100197000b00000001001d000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a000000ff00200190000000570000c13d0000093d0220019700000001022001bf000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d020000390000000303000039000009010400004100000000050004110000000b06000029220221f80000040f0000000100200190000000570000613d0000000c02000029000c00010020003d000000800100043d0000000c0010006b000007dc0000413d00000bde0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000c01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000011320000c13d000000400100043d00000044021000390000091f03000041000012080000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000504043b000008880050009c0000154c0000213d00000005045002100000003f06400039000008f306600197000008f40060009c0000154c0000213d00000024022000390000008006600039000000400060043f000000800050043f0000000004240019000000000034004b000000570000213d000000000005004b00000bde0000613d0000008003000039000000000521034f000000000505043b000008850050009c000000570000213d000000200330003900000000005304350000002002200039000000000042004b0000084d0000413d000000800100043d000000000001004b00000bde0000613d000c00000000001d000008610000013d000000000021041b0000000c02000029000c00010020003d000000800100043d0000000c0010006b00000bde0000813d0000000c010000290000000501100210000000a00110003900000000010104330000088501100197000b00000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b000008b40000613d000a00000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b000014910000413d0000000a030000290000085c0000613d00090000003100ad00000009023000f9000000000012004b000014910000c13d0000000b01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff001001900000085c0000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000000902000029000009030220012a000000000101043b000000000301041a000000000023001a000014910000413d00000000022300190000085b0000013d0000001601000039000000000101041a000b00000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b020000290000085b0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f0000000b0100003900000be90000013d0000000001000416000000000001004b000000570000c13d000000050100003900000ae50000013d0000000001000416000000000001004b000000570000c13d000000060100003900000bed0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000504043b000008880050009c0000154c0000213d00000005045002100000003f06400039000008f306600197000008f40060009c0000154c0000213d00000024022000390000008006600039000000400060043f000000800050043f0000000004240019000000000034004b000000570000213d000000000005004b00000bde0000613d0000008003000039000000000521034f000000000505043b000008850050009c000000570000213d000000200330003900000000005304350000002002200039000000000042004b000008f90000413d000000800100043d000000000001004b00000bde0000613d00000000050000190000090b0000013d0000000105500039000000800100043d000000000015004b00000bde0000813d000000000051004b000015160000a13d0000000501500210000000a0031000390000000002030433000000400a00043d000009040100004100000000001a043500000000010004140000088502200197000000040020008c0000091c0000c13d0000000103000031000000400030008c000000400400003900000000040340190000094a0000013d000a00000003001d000c00000005001d0000088200a0009c000008820300004100000000030a40190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000887011001c7000b0000000a001d220221f80000040f0000000b0a00002900000060031002700000088203300197000000400030008c00000040040000390000000004034019000000600640019000000000056a0019000009380000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000009340000c13d0000001f07400190000009450000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000c05000029000009580000613d0000001f01400039000000e00210018f0000000001a20019000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000400030008c000009070000813d000000570000013d000000800100043d000000000051004b000015160000a13d0000000a01000029000000000101043300000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d0200003900000002030000390000090504000041220221f80000040f0000000c050000290000000100200190000009070000c13d000000570000013d000000640030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000004402100370000000000202043b000b00000002001d0000000401100370000000000101043b000a00000001001d0000000001000411000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000000570000613d000000400100043d00000020021000390000000b0300002900000000003204350000000a020000290000000000210435000008820010009c000008820100804100000040011002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000900011001c70000800d02000039000000030300003900000908040000410000000c050000290000000006000411220221f80000040f0000000100200190000000570000613d00000bde0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002305200039000000000035004b000000570000813d0000000405200039000000000551034f000000000605043b000008880060009c0000154c0000213d00000005056002100000003f07500039000008f307700197000008f40070009c0000154c0000213d00000024022000390000008007700039000000400070043f000000800060043f0000000005250019000000000035004b000000570000213d000000000006004b00000bde0000613d000000000321034f000000000303043b000008850030009c000000570000213d000000200440003900000000003404350000002002200039000000000052004b000009c30000413d000000800100043d000000000001004b00000bde0000613d0000000003000019000000000031004b000015160000a13d000c00000003001d0000000501300210000000a0011000390000000001010433000b00000001001d000008f5010000410000000000100443000000000100041000000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c03000029000000570000613d0000000b010000290000088501100197000000400400043d000008f70200004100000000002404350000000402400039000000000012043500000000010004140000000002000410000000040020008c00000a060000613d000008820040009c000008820200004100000000020440190000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000002000410000b00000004001d220221f80000040f0000000b040000290000006003100270000108820030019d0000000c030000290003000000010355000000010020019000000a1b0000613d000008880040009c0000154c0000213d000000400040043f0000000701000039000000000101041a000000000031004b000015160000a13d0000000701000039000000000010043f000008f90130009a000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fc0400004100000a2c0000013d0000000701000039000000000101041a000000000031004b000015160000a13d0000000701000039000000000010043f000008f90130009a000000000101041a00000000020004140000088505100197000008820020009c0000088202008041000000c001200210000008fa011001c70000800d020000390000000203000039000008fb04000041220221f80000040f0000000c030000290000000100200190000000570000613d0000000103300039000000800100043d000000000013004b000009d00000413d00000bde0000013d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b0000000401100370000000000101043b000900000002001d000c00000001001d000000000021004b00000a570000413d00000bde0000013d0000001601000039000000000101041a000b00000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b02000029000000000021041b0000000c020000290000000102200039000c00000002001d000000090020006c00000bde0000813d0000000701000039000000000101041a0000000c02000029000000000021004b000015160000a13d000008f90120009a000000000101041a0000088501100197000b00000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b00000a430000613d000a00000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b000014910000413d0000000a0300002900000a520000613d00080000003100ad00000008023000f9000000000012004b000014910000c13d0000000b01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff0010019000000a520000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000000802000029000009030220012a000000000101043b000000000301041a000000000023001a000014910000413d000000000223001900000a510000013d000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000002402100370000000000202043b000c00000002001d0000000401100370000000000101043b000000000010043f0000000d01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000000c0020006b000000570000813d0000000c0200002922021bcd0000040f0000000302200210000000000101041a000000000121022f0000088501100197000000ff0020008c0000000001002019000000400200043d0000000000120435000008820020009c00000882020080410000004001200210000008ef011001c7000022030001042e000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f0000000f01000039000000200010043f00000040020000390000000001000019220221c50000040f000000000101041a000000ff001001900000000001000039000000010100c039000000800010043f000008f001000041000022030001042e0000000001000416000000000001004b000000570000c13d000000020100003900000c0a0000013d000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f000000150100003900000be90000013d0000000001000416000000000001004b000000570000c13d000000000103001922021b1c0000040f0000092004000041000000400600043d00000000004604350000000004000411000008850440019700000004056000390000000000450435000900000001001d000800000002001d000c00000006001d0000002401600039000700000003001d0000000000310435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c00000e090000c13d0000000103000031000000200030008c0000002004000039000000000403401900000e330000013d000000640030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000c00000002001d000008850020009c000000570000213d0000002401100370000000000101043b000b00000001001d000008850010009c000000570000213d22021b110000040f0000000202000039000000000202041a00000885022001970000000003000411000000000023004b00000000020000390000000102006039000a00000001001d000000000102001922021be80000040f0000000c01000029000000000010043f0000001301000039000000200010043f00000040020000390000000001000019220221c50000040f0000000b02000029000000000020043f000000200010043f00000000010000190000004002000039220221c50000040f000000000301041a0000093d023001970000000a0000006b000000010220c1bf000000000021041b0000000001000019000022030001042e000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b0000000001000039000000010100603922021be80000040f0000000301000039000000000201041a00000889022001970000000c03000029000000000232019f000000000021041b0000000001000019000022030001042e000000440030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000402100370000000000202043b000008880020009c000000570000213d0000002304200039000000000034004b000000570000813d0000000404200039000000000441034f000000000504043b000008880050009c0000154c0000213d00000005045002100000003f06400039000008f306600197000008f40060009c0000154c0000213d00000024022000390000008006600039000000400060043f000000800050043f0000000004240019000000000034004b000000570000213d000000000005004b00000b980000613d0000008003000039000000000521034f000000000505043b000008850050009c000000570000213d000000200330003900000000005304350000002002200039000000000042004b00000b8f0000413d0000002401100370000000000101043b000a00000001001d000008850010009c000000570000213d0000000101000039000000000101041a00000885021001970000000003000411000000000023004b000000570000c13d000000800200043d000000000002004b000013d60000c13d0000000a0200002900000885022001970000088901100197000000000121019f0000000102000039000000000012041b0000000001000019000022030001042e000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000c00000001001d000008850010009c000000570000213d0000000201000039000000000101041a00000885011001970000000002000411000000000012004b00000bf10000c13d0000000c01000029000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff00100190000011480000c13d000000400100043d00000044021000390000092a03000041000000000032043500000024021000390000000c030000390000120b0000013d0000000001000416000000000001004b000000570000c13d0000000701000039000000000101041a000900000001001d000000000001004b00000c950000c13d0000000001000019000022030001042e000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000000000010043f0000000e01000039000000200010043f00000040020000390000000001000019220221c50000040f000000000101041a000000800010043f000008f001000041000022030001042e0000089001000041000000800010043f0000002001000039000000840010043f0000001101000039000000a40010043f000008fe01000041000000c40010043f000008f2010000410000220400010430000000240030008c000000570000413d0000000002000416000000000002004b000000570000c13d0000000401100370000000000101043b000008850010009c000000570000213d000000000010043f0000000901000039000000200010043f00000040020000390000000001000019220221c50000040f000000000101041a0000088501100197000000800010043f000008f001000041000022030001042e0000088200b0009c000008820300004100000000030b40190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000887011001c7000a0000000b001d220221fd0000040f0000000a0b00002900000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000c2a0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000c260000c13d000000000006004b00000c370000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000d020000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d00000000020b0433000008850020009c000000570000213d000a00000002001d000000c00020043f000000000100041a00000889011001970000000c011001af000000000010041b0000000b01000029000000e00010043f0000000103000039000000000103041a00000889011001970000000002000411000000000121019f000000000013041b0000000201000039000000000301041a0000088903300197000000000323019f000000000031041b0000000501000039000000000301041a0000093d03300197000000000031041b0000088a010000410000000403000039000000000013041b000000000020043f0000001101000039000000200010043f00000040020000390000000001000019220221c50000040f000000000201041a0000093d0220019700000001022001bf000000000021041b0000088b01000041000000000010043f00000000010000190000004002000039220221c50000040f000000000201041a0000093d0220019700000001022001bf000000000021041b0000088c01000041000000000010043f00000000010000190000004002000039220221c50000040f000000000201041a0000093d0220019700000001022001bf000000000021041b000000800100043d000001400000044300000160001004430000002001000039000000a00200043d0000018000100443000001a0002004430000004002000039000001c0002004430000000a02000029000001e000200443000000600200003900000200002004430000000b0200002900000220002004430000010000100443000000040100003900000120001004430000088d01000041000022030001042e000c00000000001d00000c9d0000013d000000000021041b0000000c020000290000000102200039000c00000002001d000000090020006c00000bde0000813d0000000701000039000000000101041a0000000c02000029000000000021004b000015160000a13d000008f90120009a000000000101041a0000088501100197000b00000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b00000cf30000613d000a00000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b000014910000413d0000000a0300002900000c980000613d00080000003100ad00000008023000f9000000000012004b000014910000c13d0000000b01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff0010019000000c980000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000000802000029000009030220012a000000000101043b000000000301041a000000000023001a000014910000413d000000000223001900000c970000013d0000001601000039000000000101041a000b00000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b0200002900000c970000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000d090000c13d000000000005004b00000d1a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008820020009c00000882020080410000004002200210000000000112019f00002204000104300000093d02200197000000000021041b0000000001000019000022030001042e0000089001000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000008f101000041000000c40010043f000008f20100004100002204000104300000000c03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000910011001c7220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c0570002900000d470000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b00000d430000c13d000000000006004b00000d540000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000ff20000613d0000001f01400039000000600210018f0000000c01200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d0000000c010000290000000001010433000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000000570000c13d00000009010000290000000001010433000000000001004b00000bde0000613d0000000901000029000400200010003d0000000801000029000300200010003d000000000500001900000d910000013d0000000002120049000008820020009c00000882020080410000006002200210000008820010009c00000882010080410000004001100210000000000112019f0000000002000414000008820020009c0000088202008041000000c002200210000000000121019f000008fa011001c70000800d0200003900000002030000390000092804000041220221f80000040f00000001002001900000000c05000029000000570000613d000000010550003900000009010000290000000001010433000000000015004b00000bde0000813d00000008010000290000000001010433000000000051004b000015160000a13d000c00000005001d00000005015002100000000402100029000700000002001d000000000202043300000885032001970000000301100029000600000001001d0000000001010433000b00000001001d000008f5010000410000000000100443000a00000003001d00000004003004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c05000029000000570000613d000000400700043d000000240170003900000040020000390000000000210435000009270100004100000000001704350000000401700039000000050200002900000000002104350000000b080000290000000006080433000000440170003900000000006104350000006401700039000000000006004b00000dcd0000613d00000000030000190000000a0200002900000020088000390000000004080433000008850440019700000000014104360000000103300039000000000063004b00000dc20000413d0000000004000414000000040020008c00000dd10000c13d00000de70000013d0000000a020000290000000004000414000000040020008c00000de70000613d0000000001710049000008820010009c00000882010080410000006001100210000008820070009c000008820300004100000000030740190000004003300210000000000131019f000008820040009c0000088204008041000000c003400210000000000131019f000b00000007001d220221f80000040f0000000b070000290000000c050000290000006003100270000108820030019d0003000000010355000000010020019000000deb0000613d000008880070009c0000154c0000213d000000400070043f00000d8c0000013d00000009010000290000000001010433000000000051004b000015160000a13d00000008010000290000000001010433000000000051004b000015160000a13d00000007010000290000000001010433000008850510019700000006010000290000000003010433000000400100043d00000020020000390000000002210436000000000403043300000000004204350000004002100039000000000004004b00000d770000613d000000000600001900000020033000390000000007030433000008850770019700000000027204360000000106600039000000000046004b00000e010000413d00000d770000013d0000000c03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000910011001c7220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000c0570002900000e220000613d000000000801034f0000000c09000029000000008a08043c0000000009a90436000000000059004b00000e1e0000c13d000000000006004b00000e2f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000ffe0000613d0000001f01400039000000600210018f0000000c01200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d0000000c010000290000000001010433000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000000570000c13d00000009010000290000000001010433000000000001004b00000bde0000613d0000000901000029000400200010003d0000000801000029000300200010003d000000000500001900000e6c0000013d0000000002130049000008820020009c00000882020080410000006002200210000008820010009c00000882010080410000004001100210000000000112019f0000000002000414000008820020009c0000088202008041000000c002200210000000000121019f000008fa011001c70000800d0200003900000002030000390000092d04000041220221f80000040f00000001002001900000000c05000029000000570000613d000000010550003900000009010000290000000001010433000000000015004b00000bde0000813d00000008010000290000000001010433000000000051004b000015160000a13d000c00000005001d00000005015002100000000402100029000600000002001d000000000202043300000885032001970000000301100029000500000001001d0000000001010433000a00000001001d000008f5010000410000000000100443000b00000003001d00000004003004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b0000000c05000029000000570000613d000000400600043d000000240160003900000040020000390000000000210435000009270100004100000000001604350000000401600039000000070200002900000000002104350000000a070000290000000002070433000000440160003900000000002104350000006401600039000000000002004b00000ea30000613d000000000300001900000020077000390000000004070433000008850440019700000000014104360000000103300039000000000023004b00000e9c0000413d00000000040004140000000b02000029000000040020008c00000ebd0000613d0000000001610049000008820010009c00000882010080410000006001100210000008820060009c000008820300004100000000030640190000004003300210000000000131019f000008820040009c0000088204008041000000c003400210000000000131019f000b00000006001d220221f80000040f0000000b060000290000000c050000290000006003100270000108820030019d0003000000010355000000010020019000000ec10000613d000008880060009c0000154c0000213d000000400060043f00000e670000013d00000009010000290000000001010433000000000051004b000015160000a13d00000008010000290000000001010433000000000051004b000015160000a13d00000006010000290000000001010433000008850510019700000005010000290000000002010433000000400100043d000000200310003900000040040000390000000000430435000000070300002900000000003104350000004003100039000000000402043300000000004304350000006003100039000000000004004b00000e520000613d000000000600001900000020022000390000000007020433000008850770019700000000037304360000000106600039000000000046004b00000edb0000413d00000e520000013d000008820010009c0000088201008041000000c00110021000000937011001c7220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf00000ef70000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b00000ef30000c13d000000000006004b00000f040000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000100a0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000570000413d000000800100043d000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000000570000c13d0000000a01000029000000000010043f0000000d01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000301041a000000400200043d000900000002001d000c00000003001d0000000002320436000800000002001d000000000010043f0000000001000414000008820010009c0000088201008041000000c00110021000000911011001c70000801002000039220221fd0000040f0000000100200190000000570000613d0000000c05000029000000000005004b000000080200002900000f410000613d000000000101043b00000000030000190000000802000029000000000401041a0000088504400197000000000242043600000001011000390000000103300039000000000053004b00000f3a0000413d000000090120006a0000001f011000390000093e011001970000000902100029000000000012004b00000000010000390000000101004039000700000002001d000008880020009c0000154c0000213d00000001001001900000154c0000c13d0000000701000029000000400010043f00000009010000290000000001010433000600000001001d000008880010009c0000154c0000213d000000060100002900000005021002100000003f01200039000008f3011001970000000701100029000008880010009c0000154c0000213d000000400010043f000000070100002900000006030000290000000001310436000500000001001d0000001f0120018f000000000002004b00000f6b0000613d0000000504000029000000000224001900000000030000310000000203300367000000003503043c0000000004540436000000000024004b00000f670000c13d000000000001004b000000060000006b000014e20000c13d0000000a010000290000000902000029000000070300002922021e340000040f0000000001000019000022030001042e0000088200b0009c000008820300004100000000030b40190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000910011001c7000a0000000b001d220221fd0000040f0000000a0b00002900000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000f8f0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000f8b0000c13d000000000006004b00000f9c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000101d0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d00000000010b0433000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000000570000c13d0000000c0100002922021bfc0000040f000008f50100004100000000001004430000000b0100002900000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d0000000c02000029000000000101043b000000000001004b000000570000613d000000400300043d00000938010000410000000000130435000a00000003001d0000000401300039000000000021043500000000010004140000000b02000029000000040020008c00000fe10000613d0000000a02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000b02000029220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000014a30000613d0000000a01000029000008880010009c0000154c0000213d0000000a01000029000000400010043f0000000001000019000022030001042e0000000c02000029000000000002004b000010420000c13d000000400100043d00000044021000390000090603000041000000000032043500000024021000390000001d030000390000120b0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000ff90000c13d00000d0d0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010050000c13d00000d0d0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010110000c13d00000d0d0000013d000000400100043d00000044021000390000093303000041000000000032043500000024021000390000000d030000390000120b0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000010240000c13d00000d0d0000013d0000089001000041000000000013043500000020010000390000000000120435000000440130003900000909020000410000000000210435000000240130003900000006020000390000000000210435000008820030009c00000882030080410000004001300210000008ff011001c700002204000104300000089001000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000091501000041000000c40010043f000008f20100004100002204000104300000000401000039000000000021041b0000000001000019000022030001042e000008820010009c0000088201008041000000c0011002100000092e011001c7220221f80000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000105a0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000010560000c13d000000000006004b000010670000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000011260000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000000570000413d0000000c010000292202215c0000040f0000000c01000029000000000010043f0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000a00000001001d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000400300043d0000091a0200004100000000002304350000088502100197000b00000003001d0000000401300039000900000002001d000000000021043500000000010004140000000c02000029000000040020008c000012aa0000c13d0000000103000031000000200030008c00000020040000390000000004034019000012d50000013d000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000008f50200004100000000002004430000088501100197000a00000001001d00000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400200043d0000092f010000410000000000120435000900000002001d00000004012000390000000c02000029000000000021043500000000010004140000000a02000029000000040020008c000010df0000613d0000000902000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000a02000029220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000014bc0000613d0000000901000029000008880010009c0000154c0000213d0000000902000029000000400020043f000000860000013d000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000008f50200004100000000002004430000088501100197000a00000001001d00000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400200043d0000092b010000410000000000120435000900000002001d00000004012000390000000c02000029000000000021043500000000010004140000000a02000029000000040020008c000011200000613d0000000902000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000a02000029220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000014c90000613d0000000901000029000008880010009c0000154c0000213d0000000902000029000000400020043f0000013b0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000112d0000c13d00000d0d0000013d0000001801000039000000000101041a000000010010008c000000570000c13d00000018010000390000000202000039000000000021041b0000000101000039000000000201041a000000400300043d0000091901000041000b00000003001d000000000013043500000000010004140000088502200197000000040020008c000012220000c13d0000000103000031000000200030008c000000200400003900000000040340190000124c0000013d0000000c01000029000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d020000390000000303000039000009290400004100000000050004110000000c06000029000009a00000013d0000000b03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b057000290000117d0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000011790000c13d000000000006004b0000118a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000012160000613d0000001f01400039000000600110018f0000000b02100029000000000012004b00000000010000390000000101004039000a00000002001d000008880020009c0000154c0000213d00000001001001900000154c0000c13d0000000a01000029000000400010043f000000200040008c000000570000413d0000000b010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000570000c13d000000000001004b000014b00000c13d0000000a030000290000004401300039000009130200004100000000002104350000002401300039000000050200003900000000002104350000089001000041000000000013043500000004013000390000002002000039000010320000013d000008820010009c00000882010080410000004001100210000008820030009c00000882030080410000006003300210000000000113019f000008820020009c0000088202008041000000c002200210000000000121019f0000000b02000029220221f80000040f00030000000103550000006001100270000108820010019d0000088204100197000000000004004b000011dd0000c13d000000600100003900000080030000390000000100200190000000570000613d0000000001010433000000000001004b000013430000c13d0000000c0200002900000903012000d1000000000002004b000011d30000613d0000000c021000fa000009030020009c000014910000c13d0000000602000039000000000202041a000000000002004b000014050000c13d0000093101000041000000000010043f0000001201000039000000040010043f000008f80100004100002204000104300000001f014000390000093e011001970000003f011000390000093e03100197000000400100043d0000000003310019000000000013004b00000000060000390000000106004039000008880030009c0000154c0000213d00000001006001900000154c0000c13d000000400030043f00000000034104360000093e054001980000001f0640018f00000000045300190000000307000367000011f70000613d000000000807034f0000000009030019000000008a08043c0000000009a90436000000000049004b000011f30000c13d000000000006004b000011c70000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000011c70000013d000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000001103000039000000000032043500000890020000410000000000210435000000040210003900000020030000390000000000320435000008820010009c00000882010080410000004001100210000008ff011001c700002204000104300000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000121d0000c13d00000d0d0000013d0000000b03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000887011001c7220221f80000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b057000290000123b0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000012370000c13d000000000006004b000012480000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013be0000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d0000000c010000292202215c0000040f0000000c01000029000000000010043f0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000a00000001001d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000400300043d0000091a0200004100000000002304350000088502100197000b00000003001d0000000401300039000900000002001d000000000021043500000000010004140000000c02000029000000040020008c0000159c0000c13d0000000104000031000000200040008c0000002004008039000015c70000013d000008820010009c00000882010080410000004001100210000008820030009c00000882030080410000006003300210000000000113019f000008820020009c0000088202008041000000c002200210000000000112019f0000000a02000029220221f80000040f000000010220018f00030000000103550000006001100270000108820010019d0000088204100197000000000004004b0000134f0000c13d00000060010000390000008003000039000000000002004b000000570000613d0000000001010433000000000001004b000014210000c13d0000000c01000029220221360000040f0000000001000019000022030001042e0000000b02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000c02000029220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b05700029000012c40000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000012c00000c13d000000000006004b000012d10000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013ca0000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d0000000a010000290000091b0010009c0000133e0000413d0000000b0100002900000000010104330000000a0010006b0000133e0000a13d0000000c01000029000000000010043f0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000001041b000008f50100004100000000001004430000000c0100002900000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400300043d00000024013000390000000a0200002900000000002104350000091c010000410000000000130435000b00000003001d00000004013000390000000902000029000000000021043500000000010004140000000c02000029000000040020008c000013260000613d0000000b02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000910011001c70000000c02000029220221f80000040f0000006003100270000108820030019d000300000001035500000001002001900000175b0000613d0000000b01000029000008880010009c0000154c0000213d0000000b02000029000000400020043f0000000a010000290000000000120435000008820020009c000008820200804100000040012002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000800d02000039000000030300003900000000050004110000091d040000410000000c06000029220221f80000040f0000000100200190000000570000613d00000018010000390000000102000039000000000021041b0000000001000019000022030001042e000009180010009c000000570000213d000000200010008c000000570000413d0000000001030433000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000011cc0000613d000000570000013d0000003f014000390000093e03100197000000400100043d0000000003310019000000000013004b00000000060000390000000106004039000008880030009c0000154c0000213d00000001006001900000154c0000c13d000000400030043f00000000034104360000093e054001980000001f0640018f00000000045300190000000307000367000013670000613d000000000807034f0000000009030019000000008a08043c0000000009a90436000000000049004b000013630000c13d000000000006004b000012a10000613d000000000557034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f0000000000540435000012a10000013d0000000b03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b057000290000138e0000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b0000138a0000c13d000000000006004b0000139b0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000014970000613d0000001f01400039000000600110018f0000000b02100029000000000012004b00000000010000390000000101004039000900000002001d000008880020009c0000154c0000213d00000001001001900000154c0000c13d0000000901000029000000400010043f000000200030008c000000570000413d0000000b010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000570000c13d000000000001004b0000165a0000c13d000000090300002900000044013000390000093602000041000000000021043500000024013000390000001302000039000011ac0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013c50000c13d00000d0d0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013d10000c13d00000d0d0000013d0000000002000019000b00000002001d0000000501200210000000a00110003900000000010104330000088501100197000c00000001001d000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a000000ff00200190000000570000c13d0000093d0220019700000001022001bf000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d020000390000000303000039000009010400004100000000050004110000000c06000029220221f80000040f0000000100200190000000570000613d0000000b020000290000000102200039000000800100043d000000000012004b000013d70000413d0000000101000039000000000101041a00000ba60000013d000000000012004b0000140e0000213d00000000012100d90000001602000039000000000302041a000000000013001a000014910000413d0000000001130019000000000012041b000000400100043d0000000c020000290000000000210435000008820010009c000008820100804100000040011002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000000b0200002900000885062001970000800d02000039000000030300003900000932040000410000000005000411000009a00000013d000009180010009c000000570000213d000000200010008c000000570000413d0000000001030433000000000001004b0000000002000039000000010200c039000000570000613d000000000021004b000012a60000613d000000570000013d0000000302000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000910011001c70000000202000029220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000305700029000014470000613d000000000801034f0000000309000029000000008a08043c0000000009a90436000000000059004b000014430000c13d000000000006004b000014540000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000014d60000613d0000001f01400039000000600110018f0000000303100029000000000013004b00000000020000390000000102004039000100000003001d000008880030009c0000154c0000213d00000001002001900000154c0000c13d0000000102000029000000400020043f000000200040008c000000570000413d00000003020000290000000002020433000000000002004b0000000003000039000000010300c039000000570000613d000000000032004b000000570000c13d00000007030000290000000a0030006b000000570000c13d00000921020000410000000103000029000000000023043500000004023000390000000b03000029000000000032043500000000020004140000000203000029000000040030008c0000170f0000c13d0000000101100029000008880010009c0000154c0000213d000000400010043f00000001010000290000000001010433000700000001001d000009220100004100000000001004430000000001000414000008820010009c0000088201008041000000c00110021000000923011001c70000800b02000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000009250110009c000017680000413d0000093101000041000000000010043f0000001101000039000000040010043f000008f80100004100002204000104300000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000149e0000c13d00000d0d0000013d00000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014ab0000c13d00000d0d0000013d0000090c010000410000000a020000290000000001120436000b00000001001d00000000010004140000000c02000029000000040020008c0000151c0000c13d000000400030008c00000040040000390000000004034019000015470000013d00000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014c40000c13d00000d0d0000013d00000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014d10000c13d00000d0d0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000014dd0000c13d00000d0d0000013d000c00000000001d0000000a01000029000000000010043f0000000c01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f00000001002001900000000c03000029000000570000613d00000009020000290000000002020433000000000032004b000015160000a13d0000000504300210000b00000004001d000000080240002900000000020204330000088502200197000000000101043b000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039000c00000003001d220221fd0000040f0000000100200190000000570000613d000000070200002900000000020204330000000c03000029000000000032004b000015160000a13d0000000b040000290000000502400029000000000101043b000000000101041a00000000001204350000000103300039000c00000003001d000000060030006c000014e30000413d00000f6e0000013d0000093101000041000000000010043f0000003201000039000000040010043f000008f80100004100002204000104300000000a02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000887011001c70000000c02000029220221f80000040f00000060031002700000088203300197000000400030008c000000400400003900000000040340190000001f0640018f00000060074001900000000a05700029000015360000613d000000000801034f0000000a09000029000000008a08043c0000000009a90436000000000059004b000015320000c13d000000000006004b000015430000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000016660000613d0000001f01400039000000e00110018f0000000a01100029000008880010009c000015520000a13d0000093101000041000000000010043f0000004101000039000000040010043f000008f8010000410000220400010430000000400010043f000000400030008c000000570000413d0000000a010000290000000001010433000a00000001001d000008850010009c000000570000213d0000000b010000290000000001010433000b00000001001d000008850010009c000000570000213d0000000a01000029000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff0010019000000bcf0000613d0000000b01000029000000000010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000000ff0010019000000bcf0000613d000000400200043d0000090d01000041000900000002001d0000000000120435000008fd01000041000000000010044300000000010004120000000400100443000000600100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b00000000010004140000088502200197000000040020008c000018d20000c13d0000000103000031000000200030008c00000020040000390000000004034019000018fc0000013d0000000b02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f000008f8011001c70000000c02000029220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000b05700029000015b60000613d000000000801034f0000000b09000029000000008a08043c0000000009a90436000000000059004b000015b20000c13d000000000006004b000015c30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000016ae0000613d0000001f01400039000000600210018f0000000b01200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200040008c000000570000413d0000000a010000290000091b0010009c000016300000413d0000000b0100002900000000010104330000000a0010006b000016300000a13d0000000c01000029000000000010043f0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000001041b000008f50100004100000000001004430000000c0100002900000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f00000001002001900000199f0000613d000000000101043b000000000001004b000000570000613d000000400300043d00000024013000390000000a0200002900000000002104350000091c010000410000000000130435000b00000003001d00000004013000390000000902000029000000000021043500000000010004140000000c02000029000000040020008c000016180000613d0000000b02000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000910011001c70000000c02000029220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000018c50000613d0000000b01000029000008880010009c0000154c0000213d0000000b02000029000000400020043f0000000a010000290000000000120435000008820020009c000008820200804100000040012002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000800d0200003900000003030000390000091d0400004100000000050004110000000c06000029220221f80000040f0000000100200190000000570000613d00000018010000390000000102000039000000000021041b0000000c01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000001041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d0200003900000002030000390000091e04000041000004840000013d0000090c0100004100000009020000290000000001120436000b00000001001d00000000010004140000000a02000029000000040020008c000016ba0000c13d000000400030008c00000040040000390000000004034019000016e50000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000166d0000c13d00000d0d0000013d0000000906000029000016790000013d000000200660003900000000007604350000002004400039000000000054004b0000035c0000813d000000000741034f000000000707043b000008880070009c000000570000213d00000000082700190000003f07800039000000000037004b00000000090000190000093a090080410000093a07700197000000000007004b000000000a0000190000093a0a0040410000093a0070009c000000000a09c01900000000000a004b000000570000c13d0000002007800039000000000771034f000000000907043b000008880090009c0000154c0000213d000000050a9002100000003f07a00039000008f30b700197000000400700043d000000000bb7001900000000007b004b000000000c000039000000010c0040390000088800b0009c0000154c0000213d0000000100c001900000154c0000c13d00000040088000390000004000b0043f000000000097043500000000098a0019000000000039004b000000570000213d000000000089004b000016740000a13d000000000a070019000000000b81034f000000000b0b043b0000088500b0009c000000570000213d000000200aa000390000000000ba04350000002008800039000000000098004b000016a40000413d000016740000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016b50000c13d00000d0d0000013d0000000902000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000887011001c70000000a02000029220221f80000040f00000060031002700000088203300197000000400030008c000000400400003900000000040340190000001f0640018f00000060074001900000000905700029000016d40000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000016d00000c13d000000000006004b000016e10000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000017430000613d0000001f01400039000000e00110018f0000000901100029000008880010009c0000154c0000213d000000400010043f000000400030008c000000570000413d00000009010000290000000001010433000900000001001d000008850010009c000000570000213d0000000b010000290000000001010433000b00000001001d000008850010009c000000570000213d0000000a01000029000000000010043f0000000801000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a0000088500100198000017bf0000c13d000000400100043d000000440210003900000935030000410000000000320435000000240210003900000014030000390000120b0000013d0000000101000029000008820010009c00000882010080410000004001100210000008820020009c0000088202008041000000c002200210000000000112019f000008f8011001c70000000202000029220221fd0000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000105700029000017290000613d000000000801034f0000000109000029000000008a08043c0000000009a90436000000000059004b000017250000c13d000000000006004b000017360000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000174f0000613d0000001f01400039000000600110018f0000000101100029000008880010009c0000154c0000213d000000400010043f000000200030008c000014800000813d000000570000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000174a0000c13d00000d0d0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017560000c13d00000d0d0000013d00000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017630000c13d00000d0d0000013d0000091b2010012a0000000001210049000000400200043d000000070010006c0000177d0000a13d00000044012000390000092603000041000000000031043500000024012000390000001103000039000000000031043500000890010000410000000000120435000000040120003900000020030000390000000000310435000008820020009c00000882020080410000004001200210000008ff011001c7000022040001043000000009010000290000003f01100039000008f3011001970000000003120019000000000023004b00000000010000390000000101004039000008880030009c0000154c0000213d00000001001001900000154c0000c13d0000000001000031000000400030043f0000000a0300002900000000003204350000000c0010006b000000570000213d0000000a0000006b00000008050000290000179d0000613d000000020300036700000000040200190000000006050019000000000553034f000000000505043b000008850050009c000000570000213d0000002004400039000000000054043500000020056000390000000c0050006c000017930000413d00000006030000290000003f03300039000008f304300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000008880040009c0000154c0000213d00000001005001900000154c0000c13d000000400040043f0000000a040000290000000000430435000000050010006b000000570000213d0000000a0000006b00000004060000290000000507000029000017bb0000613d00000002010003670000000004030019000000000561034f000000000505043b000000200440003900000000005404350000002006600039000000000076004b000017b40000413d0000000b0100002922021e340000040f0000000001000019000022030001042e0000000c01000029000000000010043f0000000a01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000101041a000800000001001d0000000a01000029000000000010043f0000000801000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000088902200197000000000021041b0000000c01000029000000000010043f0000000901000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000088902200197000000000021041b0000000a01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000088902200197000000000021041b0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000902000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000c01000029000000000010043f0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000c01000029000000000010043f0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000700000001001d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000101043b0000088501100197000000000010043f0000000701000029000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d00000008020000290000088504200197000000000101043b000000000201041a0000093d02200197000000000021041b000800000004001d000000000040043f0000001401000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000902000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000801000029000000000010043f0000001401000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000c01000029000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d02200197000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d02000039000000040300003900000934040000410000000c0500002900000008060000290000000a07000029000009a00000013d00000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018cd0000c13d00000d0d0000013d0000000903000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000887011001c7220221f80000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000905700029000018eb0000613d000000000801034f0000000909000029000000008a08043c0000000009a90436000000000059004b000018e70000c13d000000000006004b000018f80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000019380000613d0000001f01400039000000600110018f0000000902100029000000000012004b00000000010000390000000101004039000800000002001d000008880020009c0000154c0000213d00000001001001900000154c0000c13d0000000801000029000000400010043f000000200030008c000000570000413d00000009010000290000000001010433000900000001001d000008850010009c000000570000213d00000008030000290000002401300039000000000200041a000700000002001d000000090200002900000000002104350000090e01000041000000000013043500000004013000390000000c020000290000000000210435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d0000000702000029000008850220019700000008030000290000004403300039000000000101043b000008850110019700000000001304350000000001000414000000040020008c000019440000c13d0000000103000031000000200030008c000000200400003900000000040340190000196e0000013d0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000193f0000c13d00000d0d0000013d0000000803000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008ff011001c7220221f80000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000008057000290000195d0000613d000000000801034f0000000809000029000000008a08043c0000000009a90436000000000059004b000019590000c13d000000000006004b0000196a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000019a00000613d0000001f01400039000000600110018f0000000801100029000008880010009c0000154c0000213d000000400010043f000000200030008c000000570000413d00000008010000290000000001010433000800000001001d000008850010009c000000570000213d000008fd01000041000000000010044300000000010004120000000400100443000000400100003900000024001004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f00000001002001900000199f0000613d000000000201043b000000400400043d0000002401400039000000010300008a00000000003104350000090f010000410000000000140435000700000004001d00000004014000390000000803000029000000000031043500000000010004140000088502200197000600000002001d000000040020008c000019ac0000c13d0000000103000031000000200030008c00000020040000390000000004034019000019d70000013d000000000001042f0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019a70000c13d00000d0d0000013d0000000702000029000008820020009c00000882020080410000004002200210000008820010009c0000088201008041000000c001100210000000000121019f00000910011001c70000000602000029220221f80000040f00000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000705700029000019c60000613d000000000801034f0000000709000029000000008a08043c0000000009a90436000000000059004b000019c20000c13d000000000006004b000019d30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001b050000613d0000001f01400039000000600210018f0000000701200029000000000021004b00000000020000390000000102004039000008880010009c0000154c0000213d00000001002001900000154c0000c13d000000400010043f000000200030008c000000570000413d00000007010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000570000c13d0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a000008890220019700000009022001af000000000021041b0000000c01000029000000000010043f0000000801000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a00000889022001970000000803000029000000000232019f000000000021041b000000000030043f0000000901000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a00000889022001970000000c022001af000000000021041b0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000a02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000000801000029000000000010043f0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000000801000029000000000010043f0000001301000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000602000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000000901000029000000000010043f0000001401000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000a02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b0000000901000029000000000010043f0000001401000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b0000000b02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000000570000613d000000000101043b000000000201041a0000093d0220019700000001022001bf000000000021041b00000008010000292202215c0000040f0000000702000039000000000102041a000008880010009c0000154c0000213d0000000103100039000000000032041b000000000020043f000008f90110009a000000000201041a00000889022001970000000805000029000000000252019f000000000021041b0000000001000411000000400200043d0000000000120435000008820020009c000008820200804100000040012002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000911011001c70000800d020000390000000403000039000009120400004100000009060000290000000c07000029220221f80000040f0000000100200190000000570000613d000000400100043d00000008020000290000000000210435000008820010009c00000882010080410000004001100210000008ef011001c7000022030001042e0000001f0530018f0000088406300198000000400200043d000000000462001900000d0d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001b0c0000c13d00000d0d0000013d00000044010000390000000201100367000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b00001b1a0000c13d000000000001042d00000000010000190000220400010430000009180010009c00001bb70000213d000000630010008c00001bb70000a13d00000002030003670000000402300370000000000202043b000008880020009c00001bb70000213d0000002304200039000000000014004b00001bb70000813d0000000404200039000000000443034f000000000504043b0000093f0050009c00001bb90000813d00000005065002100000003f04600039000008f307400197000000400400043d0000000007740019000000000047004b00000000080000390000000108004039000008880070009c00001bb90000213d000000010080019000001bb90000c13d0000002402200039000000400070043f00000000005404350000000006260019000000000016004b00001bb70000213d000000000005004b00001b4b0000613d0000000005040019000000000723034f000000000707043b000008850070009c00001bb70000213d000000200550003900000000007504350000002002200039000000000062004b00001b420000413d0000002402300370000000000702043b000008880070009c00001bb70000213d0000002302700039000000000012004b00000000060000190000093a060080410000093a051001970000093a02200197000000000852013f000000000052004b00000000020000190000093a020040410000093a0080009c000000000206c019000000000002004b00001bb70000c13d0000000406700039000000000263034f000000000902043b000008880090009c00001bb90000213d00000005089002100000003f02800039000008f30a200197000000400200043d000000000aa2001900000000002a004b000000000b000039000000010b0040390000088800a0009c00001bb90000213d0000000100b0019000001bb90000c13d0000004000a0043f000000000092043500000024077000390000000008780019000000000018004b00001bb70000213d000000000009004b00001bb30000613d000000000902001900001b7d0000013d00000020099000390000000000a904350000002007700039000000000087004b00001bb30000813d000000000a73034f000000000a0a043b0000088800a0009c00001bb70000213d000000000b6a00190000003f0ab0003900000000001a004b000000000c0000190000093a0c0080410000093a0aa00197000000000d5a013f00000000005a004b000000000a0000190000093a0a0040410000093a00d0009c000000000a0cc01900000000000a004b00001bb70000c13d000000200ab00039000000000aa3034f000000000c0a043b0000088800c0009c00001bb90000213d000000050dc002100000003f0ad00039000008f30ea00197000000400a00043d000000000eea00190000000000ae004b000000000f000039000000010f0040390000088800e0009c00001bb90000213d0000000100f0019000001bb90000c13d000000400bb000390000004000e0043f0000000000ca0435000000000cbd001900000000001c004b00001bb70000213d0000000000bc004b00001b780000a13d000000000d0a0019000000000eb3034f000000000e0e043b0000088500e0009c00001bb70000213d000000200dd000390000000000ed0435000000200bb000390000000000cb004b00001ba90000413d00001b780000013d0000004401300370000000000301043b0000000001040019000000000001042d000000000100001900002204000104300000093101000041000000000010043f0000004101000039000000040010043f000008f80100004100002204000104300000000702000039000000000302041a000000000013004b00001bc70000a13d000000000020043f000008f90110009a0000000002000019000000000001042d0000093101000041000000000010043f0000003201000039000000040010043f000008f80100004100002204000104300001000000000002000000000301041a000100000002001d000000000023004b00001be00000a13d000000000010043f0000000001000414000008820010009c0000088201008041000000c00110021000000911011001c70000801002000039220221fd0000040f000000010020019000001be60000613d000000000101043b00000001011000290000000002000019000000000001042d0000093101000041000000000010043f0000003201000039000000040010043f000008f801000041000022040001043000000000010000190000220400010430000000000001004b00001beb0000613d000000000001042d000000400100043d0000004402100039000008fe03000041000000000032043500000024021000390000001103000039000000000032043500000890020000410000000000210435000000040210003900000020030000390000000000320435000008820010009c00000882010080410000004001100210000008ff011001c700002204000104300009000000000002000000400300043d00000940020000410000000000230435000900000003001d0000000402300039000700000001001d0000000000120435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f000000010020019000001de00000613d000000000201043b00000000010004140000088502200197000000040020008c00001c1d0000c13d0000000103000031000000200030008c00000020040000390000000004034019000000090b00002900001c480000013d0000000903000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221fd0000040f000000090b00002900000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001c370000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001c330000c13d000000000006004b00001c440000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001e160000613d0000001f01400039000000600210018f0000000001b20019000000000021004b00000000020000390000000102004039000008880010009c00001de10000213d000000010020019000001de10000c13d000000400010043f0000001f0030008c00001dd80000a13d00000000020b0433000000000002004b0000000003000039000000010300c039000000000032004b00001dd80000c13d000000000002004b00001e060000613d0000000701000029000000000010043f0000000d01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000201043b000000000102041a000400000001001d000000000001004b000000060100003900001da00000613d0000000003000019000500000000001d000300000002001d00001c790000013d00000006030000290000000103300039000000040030006c000000030200002900001d960000813d000000000102041a000600000003001d000000000031004b00001dda0000a13d000000000020043f0000000001000414000008820010009c0000088201008041000000c00110021000000911011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b0000000601100029000000000101041a000900000001001d0000000701000029000000000010043f0000000c01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d00000009020000290000088502200197000000000101043b000800000002001d000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000101041a000900000001001d000000000001004b00001c740000613d0000000801000029000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b00001cfa0000613d000200000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b00001d9a0000413d000000020300002900001d090000613d00010000003100ad00000001023000f9000000000012004b00001d9a0000c13d0000000801000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000101041a000000ff0010019000001d090000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d0000000102000029000009030220012a000000000101043b000000000301041a000000000023001a00001d9a0000413d000000000223001900001d080000013d0000001601000039000000000101041a000200000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b0000000202000029000000000021041b0000000801000029000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000201041a000000090220006c00001d9a0000413d000000000021041b0000000701000029000000000010043f0000000c01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b0000000802000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000201041a000000090220006c00001d9a0000413d000000000021041b0000000801000029000000000010043f0000000a01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000101041a000008f50200004100000000002004430000088501100197000800000001001d00000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f000000010020019000001de00000613d000000000101043b000000000001004b00001dd80000613d000000400400043d0000002401400039000000070200002900000000002104350000094101000041000000000514043600000004014000390000000902000029000000000021043500000000010004140000000802000029000000040020008c00001d7a0000613d000008820040009c000008820300004100000000030440190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000910011001c7000800000004001d000200000005001d220221f80000040f000000020500002900000008040000290000006003100270000108820030019d0003000000010355000000010020019000001de70000613d000008880040009c00001de10000213d000000400040043f0000000902000029000000050020002a00001d9a0000413d0000000901000029000000000015043500000007010000290000000000140435000008820040009c000008820400804100000040014002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000900011001c70000800d0200003900000001030000390000094204000041220221f80000040f000000010020019000001dd80000613d0000000902000029000500050020002d00001c740000013d0000000601000039000000000101041a000000050010006b00001da20000a13d0000093101000041000000000010043f0000001101000039000000040010043f000008f8010000410000220400010430000000000101041a000500000000001d000000050110006a0000000602000039000000000012041b0000000701000029000000000010043f0000000e01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000001041b0000000d01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b000000000201041a000000000001041b000000000002004b00001dd70000613d000900000002001d000000000010043f0000000001000414000008820010009c0000088201008041000000c00110021000000911011001c70000801002000039220221fd0000040f000000010020019000001dd80000613d000000000101043b0000000902100029000000000021004b00001dd70000813d000000000001041b0000000101100039000000000021004b00001dd30000413d000000000001042d000000000100001900002204000104300000093101000041000000000010043f0000003201000039000000040010043f000008f8010000410000220400010430000000000001042f0000093101000041000000000010043f0000004101000039000000040010043f000008f801000041000022040001043000000882033001970000001f0530018f0000088406300198000000400200043d000000000462001900001df30000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001def0000c13d000000000005004b00001e000000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008820020009c00000882020080410000004002200210000000000121019f000022040001043000000044021000390000094303000041000000000032043500000024021000390000000c03000039000000000032043500000890020000410000000000210435000000040210003900000020030000390000000000320435000008820010009c00000882010080410000004001100210000008ff011001c700002204000104300000001f0530018f0000088406300198000000400200043d000000000462001900001e210000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001e1d0000c13d000000000005004b00001e2e0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008820020009c00000882020080410000004002200210000000000112019f0000220400010430000e000000000002000200000003001d000500000002001d000c00000001001d22021bfc0000040f000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f0000000100200190000020d80000613d000000000101043b000008f5020000410000000000200443000008850110019700000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f0000000100200190000020d80000613d000000000101043b000000000001004b000020c40000613d000000400200043d00000944010000410000000000120435000e00000002001d00000004022000390000000c01000029000d00000002001d0000000000120435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f0000000100200190000020d80000613d000000000201043b00000000010004140000088502200197000000040020008c00001e820000613d0000000e03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000020fe0000613d0000000e030000290000093f0030009c000020cc0000813d000000400030043f00000005010000290000000021010434000400000002001d000800000001001d000009450100004100000000001304350000000c010000290000000d020000290000000000120435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f0000000100200190000020d80000613d000000000201043b00000000010004140000088502200197000000040020008c00001ea80000c13d0000000103000031000000200030008c000000200400003900000000040340190000000e0b00002900001ed30000013d0000000e03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221fd0000040f0000000e0b00002900000060031002700000088203300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001ec20000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001ebe0000c13d000000000006004b00001ecf0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000210b0000613d0000001f01400039000000600110018f0000000001b10019000008880010009c000020cc0000213d000000400010043f000000200030008c000020c40000413d000000080000006b000020a90000613d00000000010b0433000300000001001d0000000201000029000700200010003d00000000010104330000000002000019000e00000000001d000000000021004b000020c60000a13d0000000503200210000000070330002900000000030304330000000e0030002a000020d20000413d000e000e0030002d0000000102200039000000080020006c00001ee40000413d0000000002000019000000000300001900001ef70000013d0000000a0300002900000009020000290000000102200039000000080020006c000020570000813d000a00000003001d00000005010000290000000001010433000000000021004b000020c60000a13d000900000002001d0000000502200210000b00000002001d000000040120002900000000010104330000088501100197000d00000001001d000000000010043f0000000f01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000101041a000000ff0010019000001ef20000613d00000002010000290000000001010433000000090010006c000020c60000a13d0000000b0200002900000007012000290000000001010433000b0003001000bd000000000001004b00001f200000613d0000000b011000f9000000030010006c000020d20000c13d0000000e0000006b000020d90000613d0000000c01000029000000000010043f0000000c01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b0000000d02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000101041a000000000001004b000020c40000c13d0000000b020000290000000e0020006b000020c40000213d0000000d01000029000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b00001f910000613d000600000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b000020d20000413d000000060300002900001fa00000613d00010000003100ad00000001023000f9000000000012004b000020d20000c13d0000000d01000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000101041a000000ff0010019000001fa00000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d0000000102000029000009030220012a000000000101043b000000000301041a000000000023001a000020d20000413d000000000223001900001f9f0000013d0000001601000039000000000101041a000600000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b0000000602000029000000000021041b0000000c01000029000000000010043f0000000d01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000201041a000008880020009c000020cc0000213d000600000002001d0000000102200039000000000021041b000000000010043f0000000001000414000008820010009c0000088201008041000000c00110021000000911011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b0000000601100029000000000201041a00000889022001970000000d03000029000000000232019f000000000021041b000000000030043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d0000000b030000290000000e033000fa000000000101043b000000000201041a000000000032001a000020d20000413d000b00000003001d0000000002320019000000000021041b0000000c01000029000000000010043f0000000c01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b0000000d02000029000000000020043f000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000201041a0000000b03000029000000000032001a000020d20000413d0000000002320019000000000021041b0000000d01000029000000000010043f0000000a01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b000000000101041a000008f50200004100000000002004430000088501100197000d00000001001d00000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f0000000100200190000020d80000613d000000000101043b000000000001004b000020c40000613d000000400500043d00000024015000390000000c0200002900000000002104350000094601000041000000000615043600000004015000390000000b04000029000000000041043500000000010004140000000d02000029000000040020008c0000203c0000613d000008820050009c000008820300004100000000030540190000004003300210000008820010009c0000088201008041000000c001100210000000000131019f00000910011001c7000d00000005001d000600000006001d220221f80000040f00000006060000290000000d050000290000000b040000290000006003100270000108820030019d00030000000103550000000100200190000020df0000613d000008880050009c000020cc0000213d000000400050043f0000000a0040002a000020d20000413d00000000004604350000000c010000290000000000150435000008820050009c000008820500804100000040015002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000900011001c70000800d02000039000000020300003900000947040000410000000005000411220221f80000040f0000000100200190000020c40000613d0000000b010000290000000a0310002900001ef30000013d000000000003004b000020ac0000613d000a00000003001d000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f0000000100200190000020d80000613d000000000101043b000008f5020000410000000000200443000008850110019700000004001004430000000001000414000008820010009c0000088201008041000000c001100210000008f6011001c70000800202000039220221fd0000040f0000000100200190000020d80000613d000000000101043b000000000001004b000020c40000613d000000400200043d00000948010000410000000000120435000e00000002001d00000004012000390000000c020000290000000000210435000008fd0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000008820010009c0000088201008041000000c0011002100000090b011001c70000800502000039220221fd0000040f0000000100200190000020d80000613d000000000201043b00000000010004140000088502200197000000040020008c000020a20000613d0000000e03000029000008820030009c00000882030080410000004003300210000008820010009c0000088201008041000000c001100210000000000131019f000008f8011001c7220221f80000040f0000006003100270000108820030019d00030000000103550000000100200190000021290000613d0000000e01000029000008880010009c000020cc0000213d000000400010043f0000000a03000029000e00000003001d000020ad0000013d000e00000000001d0000000003000019000020ad0000013d000e00000000001d0000000601000039000000000201041a000000000032001a000020d20000413d0000000002320019000000000021041b0000000c01000029000000000010043f0000000e01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000020c40000613d000000000101043b0000000e02000029000000000021041b000000000001042d000000000100001900002204000104300000093101000041000000000010043f0000003201000039000000040010043f000008f80100004100002204000104300000093101000041000000000010043f0000004101000039000000040010043f000008f80100004100002204000104300000093101000041000000000010043f0000001101000039000000040010043f000008f8010000410000220400010430000000000001042f0000093101000041000000000010043f0000001201000039000000040010043f000008f801000041000022040001043000000882033001970000001f0530018f0000088406300198000000400200043d0000000004620019000020eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000020e70000c13d000000000005004b000020f80000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008820020009c00000882020080410000004002200210000000000112019f000022040001043000000882033001970000001f0530018f0000088406300198000000400200043d0000000004620019000021160000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021060000c13d000021160000013d0000001f0530018f0000088406300198000000400200043d0000000004620019000021160000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021120000c13d000000000005004b000021230000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000008820020009c00000882020080410000004002200210000000000121019f000022040001043000000882033001970000001f0530018f0000088406300198000000400200043d0000000004620019000020eb0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000021310000c13d000020eb0000013d00010000000000020000088501100197000100000001001d000000000010043f0000001201000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f00000001002001900000215a0000613d000000000101043b000000000201041a000000ff002001900000215a0000c13d0000093d0220019700000001022001bf000000000021041b0000000001000414000008820010009c0000088201008041000000c001100210000008fa011001c70000800d020000390000000303000039000000000500041100000901040000410000000106000029220221f80000040f00000001002001900000215a0000613d000000000001042d0000000001000019000022040001043000030000000000020000088501100197000300000001001d000000000010043f0000000b01000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000021bc0000613d000000000101043b000000000201041a0000001701000039000000200010043f000000000002004b000021ac0000613d000200000002001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000021bc0000613d0000001602000039000000000202041a000000000101043b000000000301041a000000000021041b000000000132004b000021be0000413d0000000203000029000021bb0000613d00010000003100ad00000001023000f9000000000012004b000021be0000c13d0000000301000029000000000010043f0000001001000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000021bc0000613d000000000101043b000000000101041a000000ff00100190000021bb0000613d0000001501000039000000200010043f0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000021bc0000613d0000000102000029000009030220012a000000000101043b000000000301041a000000000023001a000021be0000413d0000000002230019000021ba0000013d0000001601000039000000000101041a000300000001001d0000000001000414000008820010009c0000088201008041000000c00110021000000900011001c70000801002000039220221fd0000040f0000000100200190000021bc0000613d000000000101043b0000000302000029000000000021041b000000000001042d000000000100001900002204000104300000093101000041000000000010043f0000001101000039000000040010043f000008f8010000410000220400010430000000000001042f000008820010009c00000882010080410000004001100210000008820020009c00000882020080410000006002200210000000000112019f0000000002000414000008820020009c0000088202008041000000c002200210000000000112019f000008fa011001c70000801002000039220221fd0000040f0000000100200190000021d80000613d000000000101043b000000000001042d0000000001000019000022040001043000000000050100190000000000200443000000050030008c000021e80000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000021e00000413d000008820030009c000008820300804100000060013002100000000002000414000008820020009c0000088202008041000000c002200210000000000112019f00000949011001c70000000002050019220221fd0000040f0000000100200190000021f70000613d000000000101043b000000000001042d000000000001042f000021fb002104210000000102000039000000000001042d0000000002000019000000000001042d00002200002104230000000102000039000000000001042d0000000002000019000000000001042d0000220200000432000022030001042e000022040001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000fffffffffffffffffffffffffffffffffffffffffc0c546a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000021e19e0c9bab240000000000000000000000000000000c5d52630c982ae81b78ab2954ddc9ec2797bb9c000000000000000000000000726461fa6e788bd8a79986d36f1992368a3e56ea0000000200000000000000000000000000000140000001000000000000000000636f6e7374727563746f72000000000000000000000000000000000000000000566f7465723a207a65726f20616464726573732070726f766964656420696e2008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000000000008a126be000000000000000000000000000000000000000000000000000000000b9a09fd400000000000000000000000000000000000000000000000000000000eaa5352200000000000000000000000000000000000000000000000000000000f0cf6c9500000000000000000000000000000000000000000000000000000000f851a43f00000000000000000000000000000000000000000000000000000000f851a44000000000000000000000000000000000000000000000000000000000fbdfe6b700000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000f80d612400000000000000000000000000000000000000000000000000000000eded3e0100000000000000000000000000000000000000000000000000000000eded3e0200000000000000000000000000000000000000000000000000000000ef897f0700000000000000000000000000000000000000000000000000000000eaa5352300000000000000000000000000000000000000000000000000000000eb4a78e000000000000000000000000000000000000000000000000000000000d560b0d600000000000000000000000000000000000000000000000000000000dae6c83000000000000000000000000000000000000000000000000000000000dae6c83100000000000000000000000000000000000000000000000000000000ea94ee4400000000000000000000000000000000000000000000000000000000d560b0d700000000000000000000000000000000000000000000000000000000d80a4d4d00000000000000000000000000000000000000000000000000000000c527ee1e00000000000000000000000000000000000000000000000000000000c527ee1f00000000000000000000000000000000000000000000000000000000d23254b400000000000000000000000000000000000000000000000000000000b9a09fd500000000000000000000000000000000000000000000000000000000c45a015500000000000000000000000000000000000000000000000000000000a0947d6e00000000000000000000000000000000000000000000000000000000a7cac84500000000000000000000000000000000000000000000000000000000aa79979a00000000000000000000000000000000000000000000000000000000aa79979b00000000000000000000000000000000000000000000000000000000b6fe96bc00000000000000000000000000000000000000000000000000000000a7cac84600000000000000000000000000000000000000000000000000000000a8c5d95a00000000000000000000000000000000000000000000000000000000a61c713900000000000000000000000000000000000000000000000000000000a61c713a00000000000000000000000000000000000000000000000000000000a6dd936400000000000000000000000000000000000000000000000000000000a0947d6f00000000000000000000000000000000000000000000000000000000a5f4301e00000000000000000000000000000000000000000000000000000000992a7932000000000000000000000000000000000000000000000000000000009b6a9d71000000000000000000000000000000000000000000000000000000009b6a9d72000000000000000000000000000000000000000000000000000000009f06247b00000000000000000000000000000000000000000000000000000000992a7933000000000000000000000000000000000000000000000000000000009b19251a0000000000000000000000000000000000000000000000000000000096c82e560000000000000000000000000000000000000000000000000000000096c82e57000000000000000000000000000000000000000000000000000000009769a38a000000000000000000000000000000000000000000000000000000008a126be1000000000000000000000000000000000000000000000000000000008dd598fb00000000000000000000000000000000000000000000000000000000402914f400000000000000000000000000000000000000000000000000000000666256a900000000000000000000000000000000000000000000000000000000704b6c010000000000000000000000000000000000000000000000000000000079e938230000000000000000000000000000000000000000000000000000000079e93824000000000000000000000000000000000000000000000000000000007ac09bf700000000000000000000000000000000000000000000000000000000704b6c02000000000000000000000000000000000000000000000000000000007715ee75000000000000000000000000000000000000000000000000000000006b2cc75b000000000000000000000000000000000000000000000000000000006b2cc75c000000000000000000000000000000000000000000000000000000006ecbe38a00000000000000000000000000000000000000000000000000000000666256aa00000000000000000000000000000000000000000000000000000000698473e300000000000000000000000000000000000000000000000000000000485fdb490000000000000000000000000000000000000000000000000000000053d786920000000000000000000000000000000000000000000000000000000053d786930000000000000000000000000000000000000000000000000000000063453ae100000000000000000000000000000000000000000000000000000000485fdb4a0000000000000000000000000000000000000000000000000000000050c116b800000000000000000000000000000000000000000000000000000000462d0b2d00000000000000000000000000000000000000000000000000000000462d0b2e0000000000000000000000000000000000000000000000000000000047b3c6ba00000000000000000000000000000000000000000000000000000000402914f500000000000000000000000000000000000000000000000000000000411b1f7700000000000000000000000000000000000000000000000000000000264deaf7000000000000000000000000000000000000000000000000000000003a045144000000000000000000000000000000000000000000000000000000003c6b16aa000000000000000000000000000000000000000000000000000000003c6b16ab000000000000000000000000000000000000000000000000000000003e504f7d000000000000000000000000000000000000000000000000000000003a045145000000000000000000000000000000000000000000000000000000003af32abf00000000000000000000000000000000000000000000000000000000310bd74a00000000000000000000000000000000000000000000000000000000310bd74b0000000000000000000000000000000000000000000000000000000032145f9000000000000000000000000000000000000000000000000000000000264deaf80000000000000000000000000000000000000000000000000000000026782247000000000000000000000000000000000000000000000000000000000e18b680000000000000000000000000000000000000000000000000000000001f7b6d31000000000000000000000000000000000000000000000000000000001f7b6d320000000000000000000000000000000000000000000000000000000020b1cb6f000000000000000000000000000000000000000000000000000000000e18b681000000000000000000000000000000000000000000000000000000001937e58f0000000000000000000000000000000000000000000000000000000006d6a1b20000000000000000000000000000000000000000000000000000000007546172000000000000000000000000000000000000000000000000000000000d52333c000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000008000000000000000005065726d697373696f6e204d6f646520456e61626c656400000000000000000000000000000000000000000000000000000000640000008000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000063453ae1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c9397802000000000000000000000000000000000000000000000000000000000000001581e4ca38f93a84a1117c3c9b3a843fd958b49bbe3372bf049bfd3276120fbe3a932c9554506f017c627364ab138bdc066bde4c4f94dfe88d71577ba83f8546310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e566f7465723a206f6e6c792061646d696e000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000002000000000000000000000000000000000000400000000000000000000000006661a7108aecd07864384529117d96c319c1163e3010c01390f6b704726e07def341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5670000000000000000000000000000000000000000000000000de0b6b3a7640000d294f09300000000000000000000000000000000000000000000000000000000653c837c1172ccbcf6fa68fcc2386f71a9e51930d8f53b738835a5a0c858e7fb466565206d7573742062652067726561746572207468616e207a65726f000000566f7465723a206f6e6c7920666565206d616e61676572000000000000000000dcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d76578697374730000000000000000000000000000000000000000000000000000e5e31b130000000000000000000000000000000000000000000000000000000002000002000000000000000000000000000000440000000000000000000000009d63848a00000000000000000000000000000000000000000000000000000000d27b9a78000000000000000000000000000000000000000000000000000000001c48e0fa00000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000020000000000000000000000000000000000002000000000000000000000000048d3c521fd0d5541640f58c6d6381eed7cb2e8c9df421ae165a4f4c2d221ee0d2170616972000000000000000000000000000000000000000000000000000000ed18e9faa3dccfd8aa45f69c4de40546b2ca9cccc4538a2323531656516db1aa5065726d697373696f6e204d6f6465204973204163746976650000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed29fc110000000000000000000000000000000000000000000000000000000099bcc052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000093a80b66503cf000000000000000000000000000000000000000000000000000000004fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b1704a5d3f5d80d22d9345acc80618f4a4e7e663cf9e1aed23b57d975acec002ba76761756765206973206e6f74206c697665000000000000000000000000000000430c208100000000000000000000000000000000000000000000000000000000f8a0576300000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000200000000000000000000000000000004000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c57ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c5806c6f636b206578706972657320736f6f6e000000000000000000000000000000a7852afa00000000000000000000000000000000000000000000000000000000707c40b300e86ea06afe070057bebf0a23f03e55ca3aa0dffb91d96d2fc89fac60a9f9ee3d1d62847472dc6b066eb0548a70c14f0ba4715be1c5bcdbd9b446252177686974656c69737465640000000000000000000000000000000000000000fbd3a29d0000000000000000000000000000000000000000000000000000000060940192810a6fb3bce3fd3e2e3a13fd6ccc7605e963fb87ee971aba829989bd3d29a870fa2d124f14984f98a1df8bcd683e624184195c2a63697d6200266f3e0000000000000000000000000000000000000004000000800000000000000000986b7d8a00000000000000000000000000000000000000000000000000000000ae268d9aab12f3605f58efd74fd3801fa812b03fdb44317eb70f46dff0e19e224e487b7100000000000000000000000000000000000000000000000000000000f70d5c697de7ea828df48e5c4573cb2194c659f1901f70110c52b066dcf508266761756765206973206c6976650000000000000000000000000000000000000013379c5ce739840b099b7f3973cd7c9ecaa3aff6f381da0cfb8008ce4f18ace5676175676520646f6573206e6f742065786973740000000000000000000000007061697220646f6573206e6f74206578697374000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000c1f0fb9f000000000000000000000000000000000000000000000000000000005065726d697373696f6e204d6f64652044697361626c65640000000000000000800000000000000000000000000000000000000000000000000000000000000031279d3d0000000000000000000000000000000000000000000000000000000064b5ca626ed4122d05be46c898b7520ff5a9a24880a4ebe983ae30b0e0aa82bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000010000000000000000c26defcd000000000000000000000000000000000000000000000000000000009e2bf22c00000000000000000000000000000000000000000000000000000000a9f3ca5f8a9e1580edb2741e0ba560084ec72e0067ba3423f9e9327a176882db566f7465204c6f636b65642100000000000000000000000000000000000000006727905400000000000000000000000000000000000000000000000000000000e7e242d400000000000000000000000000000000000000000000000000000000f320772300000000000000000000000000000000000000000000000000000000ea66f58e474bc09f580000e81f31b334d171db387d0c6098ba47bd897741679bfd4a77f1000000000000000000000000000000000000000000000000000000000200000200000000000000000000000000000000000000000000000000000000788381e9c55ce77013cf1f1ddee114933c8e0d3f77308b55517f9f4e47d03c02
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000483bdbdbf60d9650845c8097e002c2241d92ab4500000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff200000000000000000000000015e21a438853afa27ebb53710bfe0f3cfcb6abd60000000000000000000000008583c59b3aca38a72d84fb75fd05d520b57163f4
-----Decoded View---------------
Arg [0] : __ve (address): 0x483BdBdbf60d9650845c8097E002c2241D92ab45
Arg [1] : _factory (address): 0x30A0DD3D0D9E99BD0E67b323FB706788766dCff2
Arg [2] : _gauges (address): 0x15E21A438853AFa27EBB53710bfe0f3Cfcb6Abd6
Arg [3] : _bribes (address): 0x8583c59b3acA38A72D84FB75fd05D520B57163f4
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000483bdbdbf60d9650845c8097e002c2241d92ab45
Arg [1] : 00000000000000000000000030a0dd3d0d9e99bd0e67b323fb706788766dcff2
Arg [2] : 00000000000000000000000015e21a438853afa27ebb53710bfe0f3cfcb6abd6
Arg [3] : 0000000000000000000000008583c59b3aca38a72d84fb75fd05d520b57163f4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.