More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 73 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deploy Token | 20898288 | 2 days ago | IN | 0 S | 0.42273645 | ||||
Deploy Token | 20591352 | 4 days ago | IN | 0 S | 0.42283395 | ||||
Deploy Token | 20583287 | 4 days ago | IN | 0 S | 0.48921751 | ||||
Deploy Token | 19608544 | 9 days ago | IN | 0 S | 0.42277215 | ||||
Deploy Token | 19519704 | 10 days ago | IN | 0 S | 0.42277155 | ||||
Deploy Token | 19519324 | 10 days ago | IN | 0 S | 0.44369297 | ||||
Deploy Token | 19367793 | 10 days ago | IN | 0 S | 0.42273465 | ||||
Deploy Token | 19219811 | 11 days ago | IN | 0 S | 0.55063096 | ||||
Deploy Token | 18975940 | 12 days ago | IN | 0 S | 0.51949746 | ||||
Deploy Token | 18975848 | 12 days ago | IN | 0 S | 0.46791853 | ||||
Deploy Token | 18975817 | 12 days ago | IN | 0 S | 0.42277035 | ||||
Deploy Token | 18975657 | 12 days ago | IN | 0 S | 0.42270163 | ||||
Deploy Token | 18975553 | 12 days ago | IN | 0 S | 0.74006353 | ||||
Deploy Token | 18975498 | 12 days ago | IN | 0 S | 0.66617918 | ||||
Deploy Token | 18975079 | 12 days ago | IN | 0 S | 0.50408136 | ||||
Deploy Token | 18974509 | 12 days ago | IN | 0 S | 0.42269715 | ||||
Deploy Token | 18723349 | 13 days ago | IN | 0 S | 0.42277179 | ||||
Deploy Token | 18095459 | 16 days ago | IN | 0 S | 0.83324445 | ||||
Deploy Token | 18095072 | 16 days ago | IN | 0 S | 0.60549974 | ||||
Deploy Token | 17698441 | 18 days ago | IN | 0 S | 0.42283215 | ||||
Deploy Token | 17541678 | 19 days ago | IN | 0 S | 0.42273705 | ||||
Deploy Token | 17496834 | 19 days ago | IN | 0 S | 0.42614773 | ||||
Deploy Token | 17151477 | 21 days ago | IN | 0 S | 0.50173755 | ||||
Deploy Token | 17088843 | 21 days ago | IN | 0 S | 0.42273465 | ||||
Deploy Token | 17088553 | 21 days ago | IN | 0 S | 0.42273225 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | Age | From | To | Amount | |
---|---|---|---|---|---|---|
20898288 | 2 days ago | 0 S | ||||
20898288 | 2 days ago | 0 S | ||||
20898288 | 2 days ago | 0 S | ||||
20591352 | 4 days ago | 0 S | ||||
20591352 | 4 days ago | 0 S | ||||
20591352 | 4 days ago | 0 S | ||||
20583287 | 4 days ago | 0 S | ||||
20583287 | 4 days ago | 0 S | ||||
20583287 | 4 days ago | 0 S | ||||
19608544 | 9 days ago | 0 S | ||||
19608544 | 9 days ago | 0 S | ||||
19608544 | 9 days ago | 0 S | ||||
19519704 | 10 days ago | 0 S | ||||
19519704 | 10 days ago | 0 S | ||||
19519704 | 10 days ago | 0 S | ||||
19519324 | 10 days ago | 0 S | ||||
19519324 | 10 days ago | 0 S | ||||
19519324 | 10 days ago | 0 S | ||||
19367793 | 10 days ago | 0 S | ||||
19367793 | 10 days ago | 0 S | ||||
19367793 | 10 days ago | 0 S | ||||
19219811 | 11 days ago | 0 S | ||||
19219811 | 11 days ago | 0 S | ||||
19219811 | 11 days ago | 0 S | ||||
18975940 | 12 days ago | 0 S |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SpinnerFactoryShadow
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.26;import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";import {TickMath} from "@uniswap/v3-core/contracts/libraries/TickMath.sol";import {INonfungiblePositionManager, IUniswapV3Factory, ISwapRouter, IUniversalRouter, IRamsesPoolV3} from "./interface/IShadowSonicAI.sol";import {ILockerFactory, ILocker} from "./interface/ILocker.sol";import {Bytes32AddressLib} from "./Bytes32AddressLib.sol";///@dev SpinnerVerifiedToken is a verified ERC20 token, make sure it's safe to use/// and not a scam tokencontract SpinnerVerifiedToken is ERC20 {constructor(string memory name_,string memory symbol_,uint256 maxSupply_) ERC20(name_, symbol_) {_mint(msg.sender, maxSupply_);}function decimals() public view virtual override returns (uint8) {return 18;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)pragma solidity ^0.8.20;import {Context} from "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** The initial owner is set to the address provided by the deployer. This can* later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;/*** @dev The caller account is not authorized to perform an operation.*/error OwnableUnauthorizedAccount(address account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)pragma solidity ^0.8.20;/*** @dev Standard ERC20 Errors* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.*/interface IERC20Errors {/*** @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.* @param balance Current balance for the interacting account.* @param needed Minimum amount required to perform a transfer.*/error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);/*** @dev Indicates a failure with the token `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.*/error ERC20InvalidSender(address sender);/*** @dev Indicates a failure with the token `receiver`. Used in transfers.* @param receiver Address to which tokens are being transferred.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";import {Context} from "../../utils/Context.sol";import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.** TIP: For a detailed writeup see our guide* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** The default value of {decimals} is 18. To change this, you should override* this function so it returns a different value.** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC20
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC20 standard.*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @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 value of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)pragma solidity ^0.8.20;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}function _contextSuffixLength() internal view virtual returns (uint256) {return 0;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity ^0.8.0;/// @title Math library for computing sqrt prices from ticks and vice versa/// @notice Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports/// prices between 2**-128 and 2**128library TickMath {error T();error R();/// @dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128int24 internal constant MIN_TICK = -887272;/// @dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128int24 internal constant MAX_TICK = -MIN_TICK;/// @dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)uint160 internal constant MIN_SQRT_RATIO = 4295128739;/// @dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)uint160 internal constant MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;/// @notice Calculates sqrt(1.0001^tick) * 2^96/// @dev Throws if |tick| > max tick/// @param tick The input tick for the above formula/// @return sqrtPriceX96 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)/// at the given tickfunction getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) {
123456789101112131415161718// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Library for converting between addresses and bytes32 values./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Bytes32AddressLib.sol)library Bytes32AddressLib {function fromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {return address(uint160(uint256(bytesValue)));}function fillLast12Bytes(address addressValue) internal pure returns (bytes32) {return bytes32(bytes20(addressValue));}}
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.25;interface ILocker {function initializer(uint256 tokenId) external;}interface ILockerFactory {function deploy(address token,address beneficiary,uint64 durationSeconds,uint256 tokenId,uint256 fees) external payable returns (address);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.25;interface INonfungiblePositionManager {struct MintParams {address token0;address token1;int24 tickSpacing;int24 tickLower;int24 tickUpper;uint256 amount0Desired;uint256 amount1Desired;uint256 amount0Min;uint256 amount1Min;address recipient;uint256 deadline;}struct CollectParams {uint256 tokenId;address recipient;uint128 amount0Max;uint128 amount1Max;}function mint(
1234567891011121314151617181920{"viaIR": true,"evmVersion": "paris","optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"taxCollector_","type":"address"},{"internalType":"address","name":"weth_","type":"address"},{"internalType":"address","name":"locker_","type":"address"},{"internalType":"address","name":"uniswapV3Factory_","type":"address"},{"internalType":"address","name":"positionManager_","type":"address"},{"internalType":"uint64","name":"defaultLockingPeriod_","type":"uint64"},{"internalType":"address","name":"swapRouter_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"T","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"lpNftId","type":"uint256"},{"indexed":false,"internalType":"address","name":"lockerAddress","type":"address"}],"name":"LockerCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"lpNftId","type":"uint256"},{"indexed":false,"internalType":"address","name":"deployer","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"TokenCreated","type":"event"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultLockingPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"int24","name":"_initialTick","type":"int24"},{"internalType":"int24","name":"_tickSpacing","type":"int24"}],"name":"deployToken","outputs":[{"internalType":"contract SpinnerVerifiedToken","name":"token","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wrapAmount","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"bool","name":"payerIsUser","type":"bool"}],"name":"encodeWrapAndSwap","outputs":[{"internalType":"bytes","name":"commands","type":"bytes"},{"internalType":"bytes[]","name":"inputs","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"int24","name":"_tickSpacing","type":"int24"}],"name":"initialSwapTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"liquidityLocker","outputs":[{"internalType":"contract ILockerFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeesCut","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positionManager","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"predictToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolCut","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxCollector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV3Factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"newPeriod","type":"uint64"}],"name":"updateDefaultLockingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLocker","type":"address"}],"name":"updateLiquidityLocker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newFee","type":"uint8"}],"name":"updateProtocolFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCollector","type":"address"}],"name":"updateTaxCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newRate","type":"uint8"}],"name":"updateTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523461003657610020610014610182565b95949094939193610515565b61002861003b565b61525a610721823961525a90f35b610041565b60405190565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b9061007090610046565b810190811060018060401b0382111761008857604052565b610050565b906100a061009961003b565b9283610066565b565b600080fd5b60018060a01b031690565b6100bb906100a7565b90565b6100c7816100b2565b036100ce57565b600080fd5b905051906100e0826100be565b565b60018060401b031690565b6100f6816100e2565b036100fd57565b600080fd5b9050519061010f826100ed565b565b60e08183031261017d5761012882600083016100d3565b9261013683602084016100d3565b9261014481604085016100d3565b9261015282606083016100d3565b9261017a61016384608085016100d3565b936101718160a08601610102565b9360c0016100d3565b90565b6100a2565b6101a061597b803803806101958161008d565b928339810190610111565b90919293949596565b60a01b90565b906101c4600160a01b600160e01b03916101a9565b9181191691161790565b90565b90565b6101e86101e36101ed926101ce565b6101d1565b6100e2565b90565b90565b9061020861020361020f926101d4565b6101f0565b82546101af565b9055565b60001b90565b9061022a60018060a01b0391610213565b9181191691161790565b61024861024361024d926100a7565b6101d1565b6100a7565b90565b61025990610234565b90565b61026590610250565b90565b90565b9061028061027b6102879261025c565b610268565b8254610219565b9055565b9061029a60ff60a01b916101a9565b9181191691161790565b90565b60ff1690565b6102c16102bc6102c6926102a4565b6101d1565b6102a7565b90565b90565b906102e16102dc6102e8926102ad565b6102c9565b825461028b565b9055565b60a81b90565b9061030160ff60a81b916102ec565b9181191691161790565b90565b61032261031d6103279261030b565b6101d1565b6102a7565b90565b9061033f61033a6103469261030e565b6102c9565b82546102f2565b9055565b60b01b90565b9061035f60ff60b01b9161034a565b9181191691161790565b90565b61038061037b61038592610369565b6101d1565b6102a7565b90565b9061039d6103986103a49261036c565b6102c9565b8254610350565b9055565b906103b560001991610213565b9181191691161790565b90565b90565b6103d96103d46103de926103bf565b6101d1565b6103c2565b90565b90565b906103f96103f4610400926103c5565b6103e1565b82546103a8565b9055565b61040d90610234565b90565b61041990610404565b90565b61042590610404565b90565b90565b9061044061043b6104479261041c565b610428565b8254610219565b9055565b61045490610234565b90565b6104609061044b565b90565b61046c9061044b565b90565b90565b9061048761048261048e92610463565b61046f565b8254610219565b9055565b61049b90610234565b90565b6104a790610492565b90565b6104b390610492565b90565b90565b906104ce6104c96104d5926104aa565b6104b6565b8254610219565b9055565b6104ed6104e86104f2926100e2565b6101d1565b6100e2565b90565b9061050a610505610511926104d9565b6101f0565b82546101af565b9055565b956105cb6105c46105de966105bf6105b86105d7986105b36105d2986105ac6105e59f61054133610632565b6105506305a39a8060006101f3565b61055d61dead600261026b565b610569601960026102cc565b6105756032600261032a565b610581601e6002610388565b61058d600060046103e4565b6105996001600561026b565b6105a56002600661026b565b600161026b565b600761026b565b610410565b600861042b565b610457565b6009610472565b600a61026b565b61049e565b60036104b9565b60006104f5565b565b6105fb6105f6610600926103bf565b6101d1565b6100a7565b90565b61060c906105e7565b90565b610618906100b2565b9052565b91906106309060006020850194019061060f565b565b8061064e6106486106436000610603565b6100b2565b916100b2565b1461065e5761065c906106bf565b565b61068361066b6000610603565b6000918291631e4fbdf760e01b83526004830161061c565b0390fd5b60001c90565b60018060a01b031690565b6106a46106a991610687565b61068d565b90565b6106b69054610698565b90565b60000190565b6106c960006106ac565b6106d482600061026b565b906107086107027f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361025c565b9161025c565b9161071161003b565b8061071b816106b9565b0390a356fe60806040526004361015610013575b610f57565b61001e60003561018d565b80631962d947146101885780631cc2bcc21461018357806327c8f8351461017e57806331de8036146101795780633aa10f1f146101745780633fc8cef31461016f5780634de2fae71461016a57806357aa0201146101655780635b54918214610160578063715018a61461015b578063771a3a1d14610156578063791b98bc146101515780637b2768ff1461014c5780638da5cb5b146101475780639759164a146101425780639dbb8c9f1461013d578063bea1dcf814610138578063c31c9c0714610133578063d406d7511461012e578063de04f42e14610129578063e42efd5414610124578063f2fde38b1461011f5763fce4968e0361000e57610f24565b610e1c565b610de9565b610db4565b610d6f565b610cd4565b610c8f565b610c4c565b610c17565b610b72565b610b48565b610abb565b610a16565b6109d3565b61099e565b6108ce565b61083c565b6107be565b61077b565b6106f1565b6103e1565b610350565b610208565b60e01c90565b60405190565b600080fd5b600080fd5b600080fd5b60018060a01b031690565b6101bc906101a8565b90565b6101c8816101b3565b036101cf57565b600080fd5b905035906101e1826101bf565b565b906020828203126101fd576101fa916000016101d4565b90565b61019e565b60000190565b346102365761022061021b3660046101e3565b610fcc565b610228610193565b8061023281610202565b0390f35b610199565b600080fd5b600080fd5b600080fd5b909182601f830112156102845781359167ffffffffffffffff831161027f57602001926001830284011161027a57565b610245565b610240565b61023b565b90565b61029581610289565b0361029c57565b600080fd5b905035906102ae8261028c565b565b9190608083820312610328576102c981600085016101d4565b92602081013567ffffffffffffffff811161032357826102ea91830161024a565b929093604083013567ffffffffffffffff811161031e576103108361031b92860161024a565b9390946060016102a1565b90565b6101a3565b6101a3565b61019e565b610336906101b3565b9052565b919061034e9060006020850194019061032d565b565b34610387576103836103726103663660046102b0565b949390939291926111b6565b61037a610193565b9182918261033a565b0390f35b610199565b600091031261039757565b61019e565b1c90565b60018060a01b031690565b6103bb9060086103c0930261039c565b6103a0565b90565b906103ce91546103ab565b90565b6103de60026000906103c3565b90565b34610411576103f136600461038c565b61040d6103fc6103d1565b610404610193565b9182918261033a565b0390f35b610199565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b906104459061041b565b810190811067ffffffffffffffff82111761045f57604052565b610425565b90610477610470610193565b928361043b565b565b67ffffffffffffffff81116104975761049360209161041b565b0190565b610425565b90826000939282370152565b909291926104bd6104b882610479565b610464565b938185526020850190828401116104d9576104d79261049c565b565b610416565b9080601f830112156104fc578160206104f9933591016104a8565b90565b61023b565b151590565b61050f81610501565b0361051657565b600080fd5b9050359061052882610506565b565b919060a0838203126105955761054381600085016102a1565b9261055182602083016102a1565b9261055f83604084016102a1565b9260608301359067ffffffffffffffff8211610590576105848161058d9386016104de565b9360800161051b565b90565b6101a3565b61019e565b5190565b60209181520190565b60005b8381106105bb575050906000910152565b8060209183015181850152016105aa565b6105eb6105f46020936105f9936105e28161059a565b9384809361059e565b958691016105a7565b61041b565b0190565b5190565b60209181520190565b60200190565b60209181520190565b6106386106416020936106469361062f8161059a565b93848093610610565b958691016105a7565b61041b565b0190565b9061065491610619565b90565b60200190565b9061067161066a836105fd565b8092610601565b90816106826020830284019461060a565b926000915b83831061069657505050505090565b909192939460206106b86106b28385600195038752895161064a565b97610657565b9301930191939290610687565b90916106e06106ee93604084019084820360008601526105cc565b91602081840391015261065d565b90565b346107265761070d61070436600461052a565b93929092611567565b90610722610719610193565b928392836106c5565b0390f35b610199565b67ffffffffffffffff1690565b6107418161072b565b0361074857565b600080fd5b9050359061075a82610738565b565b90602082820312610776576107739160000161074d565b90565b61019e565b346107a95761079361078e36600461075c565b611741565b61079b610193565b806107a581610202565b0390f35b610199565b6107bb60076000906103c3565b90565b346107ee576107ce36600461038c565b6107ea6107d96107ae565b6107e1610193565b9182918261033a565b0390f35b610199565b60ff1690565b610802816107f3565b0361080957565b600080fd5b9050359061081b826107f9565b565b90602082820312610837576108349160000161080e565b90565b61019e565b3461086a5761085461084f36600461081d565b6117ca565b61085c610193565b8061086681610202565b0390f35b610199565b60ff1690565b61088590600861088a930261039c565b61086f565b90565b906108989154610875565b90565b6108a8600260159061088d565b90565b6108b4906107f3565b9052565b91906108cc906000602085019401906108ab565b565b346108fe576108de36600461038c565b6108fa6108e961089b565b6108f1610193565b918291826108b8565b0390f35b610199565b60018060a01b031690565b61091e906008610923930261039c565b610903565b90565b90610931915461090e565b90565b6109416008600090610926565b90565b90565b61095b610956610960926101a8565b610944565b6101a8565b90565b61096c90610947565b90565b61097890610963565b90565b6109849061096f565b9052565b919061099c9060006020850194019061097b565b565b346109ce576109ae36600461038c565b6109ca6109b9610934565b6109c1610193565b91829182610988565b0390f35b610199565b34610a01576109e336600461038c565b6109eb611823565b6109f3610193565b806109fd81610202565b0390f35b610199565b610a13600260149061088d565b90565b34610a4657610a2636600461038c565b610a42610a31610a06565b610a39610193565b918291826108b8565b0390f35b610199565b60018060a01b031690565b610a66906008610a6b930261039c565b610a4b565b90565b90610a799154610a56565b90565b610a896009600090610a6e565b90565b610a9590610963565b90565b610aa190610a8c565b9052565b9190610ab990600060208501940190610a98565b565b34610aeb57610acb36600461038c565b610ae7610ad6610a7c565b610ade610193565b91829182610aa5565b0390f35b610199565b60020b90565b610aff81610af0565b03610b0657565b600080fd5b90503590610b1882610af6565b565b9190604083820312610b435780610b37610b4092600086016101d4565b93602001610b0b565b90565b61019e565b610b5c610b56366004610b1a565b906118d0565b610b64610193565b80610b6e81610202565b0390f35b34610ba257610b8236600461038c565b610b9e610b8d6119c2565b610b95610193565b9182918261033a565b0390f35b610199565b60018060a01b031690565b610bc2906008610bc7930261039c565b610ba7565b90565b90610bd59154610bb2565b90565b610be56003600090610bca565b90565b610bf190610963565b90565b610bfd90610be8565b9052565b9190610c1590600060208501940190610bf4565b565b34610c4757610c2736600461038c565b610c43610c32610bd8565b610c3a610193565b91829182610c01565b0390f35b610199565b34610c7a57610c64610c5f3660046101e3565b611a47565b610c6c610193565b80610c7681610202565b0390f35b610199565b610c8c60016000906103c3565b90565b34610cbf57610c9f36600461038c565b610cbb610caa610c7f565b610cb2610193565b9182918261033a565b0390f35b610199565b610cd1600a6000906103c3565b90565b34610d0457610ce436600461038c565b610d00610cef610cc4565b610cf7610193565b9182918261033a565b0390f35b610199565b67ffffffffffffffff1690565b610d26906008610d2b930261039c565b610d09565b90565b90610d399154610d16565b90565b610d496000601490610d2e565b90565b610d559061072b565b9052565b9190610d6d90600060208501940190610d4c565b565b34610d9f57610d7f36600461038c565b610d9b610d8a610d3c565b610d92610193565b91829182610d59565b0390f35b610199565b610db1600260169061088d565b90565b34610de457610dc436600461038c565b610de0610dcf610da4565b610dd7610193565b918291826108b8565b0390f35b610199565b34610e1757610e01610dfc36600461081d565b611aab565b610e09610193565b80610e1381610202565b0390f35b610199565b34610e4a57610e34610e2f3660046101e3565b611b1e565b610e3c610193565b80610e4681610202565b0390f35b610199565b909160a082840312610ed557600082013567ffffffffffffffff8111610ed05783610e7b91840161024a565b929093602082013567ffffffffffffffff8111610ecb5781610e9e91840161024a565b929093610ec8610eb184604085016102a1565b93610ebf8160608601610b0b565b93608001610b0b565b90565b6101a3565b6101a3565b61019e565b610ee390610963565b90565b610eef90610eda565b9052565b610efc90610289565b9052565b916020610f22929493610f1b60408201966000830190610ee6565b0190610ef3565b565b610f3e610f32366004610e4f565b95949094939193612306565b90610f53610f4a610193565b92839283610f00565b0390f35b600080fd5b610f6d90610f68612b9a565b610fbf565b565b60001b90565b90610f8660018060a01b0391610f6f565b9181191691161790565b610f9990610963565b90565b90565b90610fb4610faf610fbb92610f90565b610f9c565b8254610f75565b9055565b610fca906001610f9f565b565b610fd590610f5c565b565b600090565b60001c90565b90565b610ff1610ff691610fdc565b610fe2565b90565b6110039054610fe5565b90565b9160206110289294936110216040820196600083019061032d565b0190610ef3565b565b60200190565b90565b60ff60f81b1690565b60f81b90565b61105661105161105b92611030565b61103c565b611033565b90565b61106790610963565b90565b60209181520190565b919061108d81611086816110929561106a565b809561049c565b61041b565b0190565b9594926110cf946110b96110c79360409560608b01918b830360008d0152611073565b9188830360208a0152611073565b940190610ef3565b565b905090565b6110fb6110f2926020926110e98161059a565b948580936110d1565b938491016105a7565b0190565b61110d9061111393926110d6565b906110d6565b90565b90565b61112561112a91611033565b611116565b9052565b60601b90565b61113d9061112e565b90565b61114990611134565b90565b61115861115d916101b3565b611140565b9052565b90565b90565b61117361117891611161565b611164565b9052565b926111aa60146111b2946111a260018861119a60209b9a8c99611119565b01809261114c565b018092611167565b018092611167565b0190565b946112d7936112a06112c89361127a6112ef999896986111d4610fd7565b506112096111e26004610ff9565b916111fa6111ee610193565b93849260208401611006565b6020820181038252038261043b565b61121b6112158261059a565b9161102a565b209861126b61122a60ff611042565b986112343061105e565b9b976115749561124660208801610464565b96808852613cb16020890139939791909161125f610193565b98899560208701611096565b6020820181038252038461043b565b611291611285610193565b938492602084016110ff565b6020820181038252038261043b565b6112b26112ac8261059a565b9161102a565b20906112bc610193565b9586946020860161117c565b6020820181038252038261043b565b6112e96112e38261059a565b9161102a565b20612c19565b90565b606090565b606090565b90565b61131361130e611318926112fc565b610944565b610289565b90565b9061132d61132883610479565b610464565b918252565b369037565b9061135c6113448361131b565b926020806113528693610479565b9201910390611332565b565b90565b61137561137061137a9261135e565b610944565b6107f3565b90565b611387600b611361565b90565b61139e6113996113a3926107f3565b61103c565b611033565b90565b634e487b7160e01b600052603260045260246000fd5b906113c68261059a565b8110156113d857600160209102010190565b6113a6565b90565b6113f46113ef6113f9926113dd565b610944565b610289565b90565b61141061140b611415926113dd565b610944565b6107f3565b90565b61142260006113fc565b90565b90565b61143c61143761144192611425565b610944565b610289565b90565b67ffffffffffffffff811161145c5760208091020190565b610425565b9061147361146e83611444565b610464565b918252565b606090565b60005b82811061148c57505050565b602090611497611478565b8184015201611480565b906114c66114ae83611461565b926020806114bc8693611444565b920191039061147d565b565b6114d46114d991610fdc565b6103a0565b90565b6114e690546114c8565b90565b906114f3826105fd565b811015611504576020809102010190565b6113a6565b61151290610501565b9052565b611565946115508298979561154660809661153c61155d97600060a0890198019061032d565b60208c0190610ef3565b60408a0190610ef3565b87820360608901526105cc565b940190611509565b565b9394926116b892916116836116929261157e6112f2565b506115876112f7565b5061159a61159560026112ff565b611337565b986115ab6115a661137d565b61138a565b6115c48b6115be60009360001a936113e0565b906113bc565b536115d56115d0611418565b61138a565b6115ee8b6115e860019360001a93611428565b906113bc565b5361165e6116046115ff60026112ff565b6114a1565b9961163861161260066114dc565b61162961161d610193565b93849260208401611006565b6020820181038252038261043b565b6116588b9160009061165261164c836113e0565b856114e9565b526113e0565b906114e9565b515061166a60056114dc565b9395919091611677610193565b96879560208701611516565b6020820181038252038261043b565b6116b284916001906116ac6116a683611428565b856114e9565b52611428565b906114e9565b5150565b6116cd906116c8612b9a565b611734565b565b60a01b90565b906116eb67ffffffffffffffff60a01b916116cf565b9181191691161790565b61170961170461170e9261072b565b610944565b61072b565b90565b90565b90611729611724611730926116f5565b611711565b82546116d5565b9055565b61173f906000611714565b565b61174a906116bc565b565b61175d90611758612b9a565b6117bd565b565b60a81b90565b9061177460ff60a81b9161175f565b9181191691161790565b61179261178d611797926107f3565b610944565b6107f3565b90565b90565b906117b26117ad6117b99261177e565b61179a565b8254611765565b9055565b6117c890600261179d565b565b6117d39061174c565b565b6117dd612b9a565b6117e561180f565b565b6117fb6117f6611800926113dd565b610944565b6101a8565b90565b61180c906117e7565b90565b61182161181c6000611803565b612c3e565b565b61182b6117d5565b565b60e81b90565b61183c9061182d565b90565b61184b61185091610af0565b611833565b9052565b60149392611874858361186c60039561187c9761114c565b01809261183f565b01809261114c565b0190565b61188990610947565b90565b61189590611880565b90565b6118a190610963565b90565b600080fd5b60e01b90565b60009103126118ba57565b61019e565b6118c7610193565b3d6000823e3d90fd5b611909611921926118fa6118e460076114dc565b91936118ee610193565b94859360208501611854565b6020820181038252038261043b565b3434906000929161191b6000946113e0565b91611567565b9061193c611937611932600a6114dc565b61188c565b611898565b916324856bc334939093929193813b156119bd5760009361196e91611979611962610193565b978896879586946118a9565b8452600484016106c5565b03925af180156119b85761198b575b50565b6119ab9060003d81116119b1575b6119a3818361043b565b8101906118af565b38611988565b503d611999565b6118bf565b6118a4565b6119ca610fd7565b506119d560006114dc565b90565b6119e9906119e4612b9a565b611a32565b565b6119f490610947565b90565b611a00906119eb565b90565b611a0c906119eb565b90565b90565b90611a27611a22611a2e92611a03565b611a0f565b8254610f75565b9055565b611a3e611a45916119f7565b6003611a12565b565b611a50906119d8565b565b611a6390611a5e612b9a565b611a9e565b565b90611a7460ff60a01b916116cf565b9181191691161790565b90611a93611a8e611a9a9261177e565b61179a565b8254611a65565b9055565b611aa9906002611a7e565b565b611ab490611a52565b565b611ac790611ac2612b9a565b611ac9565b565b80611ae5611adf611ada6000611803565b6101b3565b916101b3565b14611af557611af390612c3e565b565b611b1a611b026000611803565b6000918291631e4fbdf760e01b83526004830161033a565b0390fd5b611b2790611ab6565b565b600090565b600090565b611b47611b42611b4c926113dd565b610944565b610af0565b90565b634e487b7160e01b600052601260045260246000fd5b611b71611b7791610af0565b91610af0565b908115611b82570790565b611b4f565b60007f5370696e6e65724572726f723a20496e76616c6964207469636b000000000000910152565b611bbc601a60209261106a565b611bc581611b87565b0190565b611bdf9060208101906000818303910152611baf565b90565b15611be957565b611bf1610193565b62461bcd60e51b815280611c0760048201611bc9565b0390fd5b611c17611c1c91610fdc565b610903565b90565b611c299054611c0b565b90565b90505190611c39826101bf565b565b90602082820312611c5557611c5291600001611c2c565b90565b61019e565b611c6390610af0565b9052565b611c70906101a8565b9052565b611caa611cb194611ca0606094989795611c96608086019a600087019061032d565b602085019061032d565b6040830190611c5a565b0190611c67565b565b611cbe610160610464565b90565b90611ccb906101b3565b9052565b90611cd990610af0565b9052565b90611ce790610289565b9052565b611cf7611cfc91610fdc565b610a4b565b90565b611d099054611ceb565b90565b90505190611d1982610506565b565b90602082820312611d3557611d3291600001611d0c565b90565b61019e565b90505190611d478261028c565b565b6fffffffffffffffffffffffffffffffff1690565b611d6781611d49565b03611d6e57565b600080fd5b90505190611d8082611d5e565b565b608081830312611dc457611d998260008301611d3a565b92611dc1611daa8460208501611d73565b93611db88160408601611d3a565b93606001611d3a565b90565b61019e565b611dd2906101b3565b9052565b611ddf90610af0565b9052565b611dec90610289565b9052565b9061014080611ebb93611e0b60008201516000860190611dc9565b611e1d60208201516020860190611dc9565b611e2f60408201516040860190611dd6565b611e4160608201516060860190611dd6565b611e5360808201516080860190611dd6565b611e6560a082015160a0860190611de3565b611e7760c082015160c0860190611de3565b611e8960e082015160e0860190611de3565b611e9d610100820151610100860190611de3565b611eb1610120820151610120860190611dc9565b0151910190611de3565b565b9190611ed29060006101608501940190611df0565b565b611ee0611ee591610fdc565b610ba7565b90565b611ef29054611ed4565b90565b60a01c90565b611f07611f0c91611ef5565b610d09565b90565b611f199054611efb565b90565b60a81c90565b611f2e611f3391611f1c565b61086f565b90565b611f409054611f22565b90565b611f57611f52611f5c926107f3565b610944565b610289565b90565b611f6890611f43565b9052565b90959492611fb894611fa7611fb192611f9d608096611f9360a088019c600089019061032d565b602087019061032d565b6040850190610d4c565b6060830190610ef3565b0190611f5f565b565b604090611fe4611feb9496959396611fda6060840198600085019061032d565b602083019061032d565b0190610ef3565b565b611ff690610947565b90565b61200290611fed565b90565b61200e90610963565b90565b919061202590600060208501940190610ef3565b565b60b01c90565b61203961203e91612027565b61086f565b90565b61204b905461202d565b90565b634e487b7160e01b600052601160045260246000fd5b61207361207991939293610289565b92610289565b91612085838202610289565b92818404149015171561209457565b61204e565b90565b6120b06120ab6120b592612099565b610944565b610289565b90565b6120c46120ca91610289565b91610289565b9081156120d5570490565b611b4f565b6120e96120ef91939293610289565b92610289565b82039182116120fa57565b61204e565b61210890610947565b90565b612114906120ff565b90565b61212090610963565b90565b61212f600080926110d1565b0190565b61213c90612123565b90565b3d60001461215c576121503d61131b565b903d6000602084013e5b565b6121646112f2565b9061215a565b60207f746f636f6c206665657300000000000000000000000000000000000000000000917f5370696e6e65724572726f723a204661696c656420746f2073656e642070726f60008201520152565b6121c5602a60409261106a565b6121ce8161216a565b0190565b6121e890602081019060008183039101526121b8565b90565b6121f490610289565b60001981146122035760010190565b61204e565b9061221560001991610f6f565b9181191691161790565b61223361222e61223892610289565b610944565b610289565b90565b90565b9061225361224e61225a9261221f565b61223b565b8254612208565b9055565b94856122b1916122ca966122a46122bf976122d19d9f9e9c9660c09c9861229061229a92600060e08a0199019061032d565b60208d0190610ef3565b60408b019061032d565b88830360608a0152611073565b918583036080870152611073565b9660a0830190610ef3565b0190610ef3565b565b6040906122fd61230494969593966122f36060840198600085019061032d565b6020830190610ef3565b019061032d565b565b9291909593969496612316611b29565b5061231f611b2e565b508461233461232e6000611b33565b91610af0565b141580612b70575b61234590611be2565b3361237a6123536004610ff9565b9161236b61235f610193565b93849260208401611006565b6020820181038252038261043b565b61238c6123868261059a565b9161102a565b20848890849186859061239d610193565b9461157486019386851067ffffffffffffffff861117612b6b5786956123ca95611574613cb18939611096565b03906000f58015612b665797806123e087612d25565b9083916123ed60006113e0565b928c8a6123f982610eda565b9161240460076114dc565b9761240e82610eda565b61242961242361241e60076114dc565b6101b3565b916101b3565b11612b20575b9061243b6020926133a7565b90612485600061245361244e6008611c1f565b61096f565b9261249061246563232aa5ac92610eda565b9561247060076114dc565b98612479610193565b998a98899788966118a9565b865260048601611c74565b03925af18015612b1b57612aef575b5094938a939291600092600094306124b69061105e565b9642986124c1611cb3565b9a60008c01906124d091611cc1565b60208b01906124de91611cc1565b60408a01906124ec91611ccf565b60608901906124fa91611ccf565b608088019061250891611ccf565b60a087019061251691611cdd565b60c086019061252491611cdd565b61252d906113e0565b60e085019061253b91611cdd565b612544906113e0565b61010084019061255391611cdd565b61012083019061256291611cc1565b61014082019061257191611cdd565b8861257b90610eda565b9063095ea7b39161258c6009611cff565b61259590610a8c565b9284906125a0610193565b9485926125ad84936118a9565b835260048301916125bd92611006565b03815a602094600091f1908115612aea5761261692608092612abe575b506125ed6125e86009611cff565b610a8c565b61260b6000636d70c4156125ff610193565b968795869485936118a9565b835260048301611ebd565b03925af1908115612ab957600091612a8a575b509687602061264061263b6003611ee8565b610be8565b634e54db099061268c600061265d6126586009611cff565b610a8c565b93612697339761266c84611f0f565b906126776002611f36565b91612680610193565b9a8b998a9889976118a9565b875260048701611f6c565b03925af1908115612a8557600091612a57575b50956126be6126b96009611cff565b610a8c565b6342842e0e6126cc3061105e565b89928c92813b15612a525760006126f69161270182966126ea610193565b988997889687956118a9565b855260048501611fba565b03925af18015612a4d57612a20575b5061272261271d88611ff9565b612005565b6367a4d1c38a823b15612a1b576127599261274e60008094612742610193565b968795869485936118a9565b835260048301612011565b03925af18015612a16576129e9575b506127996127883461278261277d6002612041565b611f43565b90612064565b6127936103e861209c565b906120b8565b908a6127e46127a93485906120da565b926127d56127c16127ba60076114dc565b9294610eda565b6127c9610193565b94859360208501611854565b6020820181038252038261043b565b346127f86127f260006113e0565b91610289565b11612920575b50506000806128489261282161281c61281760016114dc565b61210b565b612117565b9061282a610193565b908161283581612133565b03925af161284161213f565b5015610501565b6128fe576128b39161286c6128656128606004610ff9565b6121eb565b600461223e565b6128758a610eda565b93899533979391909183947f0d4d53a5773fac520a88c07c7b8259dc61a7ef40b1122fd0540942520f195104996128aa610193565b998a998a61225e565b0390a16128bf84610eda565b908390916128f97f11a788de3e663cc1185acf83a460860c7ca3359f469a2fdad8ff2d6caaf83b72936128f0610193565b938493846122d3565b0390a1565b612906610193565b62461bcd60e51b81528061291c600482016121d2565b0390fd5b61293c90828390600092916129366000946113e0565b91611567565b61295661295161294c600a6114dc565b61188c565b611898565b926324856bc390939093929193813b156129e4576000936129889161299361297c610193565b978896879586946118a9565b8452600484016106c5565b03925af180156129df576128489260009283926129b3575b5092506127fe565b6129d290833d81116129d8575b6129ca818361043b565b8101906118af565b386129ab565b503d6129c0565b6118bf565b6118a4565b612a099060003d8111612a0f575b612a01818361043b565b8101906118af565b38612768565b503d6129f7565b6118bf565b6118a4565b612a409060003d8111612a46575b612a38818361043b565b8101906118af565b38612710565b503d612a2e565b6118bf565b6118a4565b612a78915060203d8111612a7e575b612a70818361043b565b810190611c3b565b386126aa565b503d612a66565b6118bf565b612aab915060803d8111612ab2575b612aa3818361043b565b810190611d82565b5050612629565b503d612a99565b6118bf565b612ade9060203d8111612ae3575b612ad6818361043b565b810190611d1b565b6125da565b503d612acc565b6118bf565b612b0f9060203d8111612b14575b612b07818361043b565b810190611c3b565b61249f565b503d612afd565b6118bf565b9750509350505050612b329150612d4c565b8190612b3e60006113e0565b9184928c8a6020612b4f60076114dc565b9261243b612b5c82610eda565b999192505061242f565b6118bf565b610425565b50612345612b7f898790611b65565b612b92612b8c6000611b33565b91610af0565b14905061233c565b612ba26119c2565b612bbb612bb5612bb0613ca3565b6101b3565b916101b3565b03612bc257565b612be5612bcd613ca3565b600091829163118cdaa760e01b83526004830161033a565b0390fd5b612bf5612bfa91610fdc565b61221f565b90565b612c11612c0c612c1692610289565b610944565b6101a8565b90565b612c36612c31612c3b92612c2b610fd7565b50612be9565b612bfd565b610963565b90565b612c4860006114dc565b612c53826000610f9f565b90612c87612c817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610f90565b91610f90565b91612c90610193565b80612c9a81610202565b0390a3565b600090565b90565b612cbb612cb6612cc092612ca4565b610944565b610af0565b90565b612cd0620d89e719612ca7565b90565b612cdf90600003610af0565b90565b612cf2612ced612cc3565b612cd3565b90565b612d01612d0791610af0565b91610af0565b908115612d12570590565b611b4f565b90612d229102610af0565b90565b612d4990612d31612c9f565b50612d44612d3d612ce2565b8290612cf5565b612d17565b90565b612d7090612d58612c9f565b50612d6b612d64612cc3565b8290612cf5565b612d17565b90565b600090565b90565b612d8f612d8a612d9492610af0565b610944565b612d78565b90565b612dab612da6612db092612d78565b610944565b610289565b90565b612dbf90600003612d78565b90565b90565b70ffffffffffffffffffffffffffffffffff1690565b612def612dea612df492612dc2565b610944565b612dc5565b90565b90565b612e0e612e09612e1392612df7565b610944565b612dc5565b90565b612e2a612e25612e2f92612dc5565b610944565b610289565b90565b90565b612e49612e44612e4e92612e32565b610944565b610289565b90565b90612e5c9102610289565b90565b90565b612e76612e71612e7b92612e5f565b610944565b6107f3565b90565b612e9d90612e97612e91612ea2946107f3565b91610289565b9061039c565b610289565b90565b90565b612ebc612eb7612ec192612ea5565b610944565b610289565b90565b90565b612edb612ed6612ee092612ec4565b610944565b610289565b90565b90565b612efa612ef5612eff92612ee3565b610944565b610289565b90565b90565b612f19612f14612f1e92612f02565b610944565b610289565b90565b90565b612f38612f33612f3d92612f21565b610944565b610289565b90565b90565b612f57612f52612f5c92612f40565b610944565b610289565b90565b90565b612f76612f71612f7b92612f5f565b610944565b610289565b90565b90565b612f95612f90612f9a92612f7e565b610944565b610289565b90565b90565b612fb4612faf612fb992612f9d565b610944565b610289565b90565b90565b612fd3612fce612fd892612fbc565b610944565b610289565b90565b612fef612fea612ff492612e5f565b610944565b610289565b90565b90565b61300e61300961301392612ff7565b610944565b610289565b90565b90565b61302d61302861303292613016565b610944565b610289565b90565b90565b61304c61304761305192613035565b610944565b610289565b90565b90565b61306b61306661307092613054565b610944565b610289565b90565b90565b61308a61308561308f92613073565b610944565b610289565b90565b90565b6130a96130a46130ae92613092565b610944565b610289565b90565b90565b6130c86130c36130cd926130b1565b610944565b610289565b90565b90565b6130e76130e26130ec926130d0565b610944565b610289565b90565b90565b61310661310161310b926130ef565b610944565b610289565b90565b90565b61312561312061312a9261310e565b610944565b610289565b90565b90565b61314461313f6131499261312d565b610944565b610289565b90565b90565b61316361315e6131689261314c565b610944565b610289565b90565b90565b61318261317d6131879261316b565b610944565b610289565b90565b90565b6131a161319c6131a69261318a565b610944565b610289565b90565b90565b6131c06131bb6131c5926131a9565b610944565b610289565b90565b90565b6131df6131da6131e4926131c8565b610944565b610289565b90565b90565b6131fe6131f9613203926131e7565b610944565b610289565b90565b90565b61321d61321861322292613206565b610944565b610289565b90565b90565b61323c61323761324192613225565b610944565b610289565b90565b90565b61325b61325661326092613244565b610944565b610289565b90565b90565b61327a61327561327f92613263565b610944565b610289565b90565b90565b61329961329461329e92613282565b610944565b610289565b90565b90565b6132b86132b36132bd926132a1565b610944565b610289565b90565b90565b6132d76132d26132dc926132c0565b610944565b610289565b90565b90565b6132f66132f16132fb926132df565b610944565b610289565b90565b61330a61331091610289565b91610289565b90811561331b570490565b611b4f565b61333461332f61333992612f5f565b610944565b6107f3565b90565b90565b61335361334e6133589261333c565b610944565b610289565b90565b61336761336d91610289565b91610289565b908115613378570690565b611b4f565b61339161338c61339692611425565b610944565b6107f3565b90565b906133a49101610289565b90565b6133af612d73565b50806133c46133be6000611b33565b91610af0565b12600014613c8d576133e56133e06133db83612d7b565b612db3565b612d97565b5b908161341161340b6134066134016133fc612ce2565b612d7b565b612d97565b610289565b91610289565b11613c7057816137b0916137b5936134296001611428565b1661343d61343760006113e0565b91610289565b1415600014613c5b576134686134626ffffcb933bd6fad37aa2d162d1a594001612dfa565b5b612e16565b918061347460026112ff565b1661348861348260006113e0565b91610289565b03613c1e575b806134996004612ea8565b166134ad6134a760006113e0565b91610289565b03613be1575b806134be6008612ee6565b166134d26134cc60006113e0565b91610289565b03613ba4575b806134e36010612f24565b166134f76134f160006113e0565b91610289565b03613b67575b806135086020612f62565b1661351c61351660006113e0565b91610289565b03613b2a575b8061352d6040612fa0565b1661354161353b60006113e0565b91610289565b03613aed575b806135526080612fdb565b1661356661356060006113e0565b91610289565b03613ab0575b80613578610100613019565b1661358c61358660006113e0565b91610289565b03613a73575b8061359e610200613057565b166135b26135ac60006113e0565b91610289565b03613a36575b806135c4610400613095565b166135d86135d260006113e0565b91610289565b036139f9575b806135ea6108006130d3565b166135fe6135f860006113e0565b91610289565b036139bc575b80613610611000613111565b1661362461361e60006113e0565b91610289565b0361397f575b8061363661200061314f565b1661364a61364460006113e0565b91610289565b03613942575b8061365c61400061318d565b1661367061366a60006113e0565b91610289565b03613905575b806136826180006131cb565b1661369661369060006113e0565b91610289565b036138c8575b806136a962010000613209565b166136bd6136b760006113e0565b91610289565b0361388b575b806136d062020000613247565b166136e46136de60006113e0565b91610289565b0361384f575b806136f762040000613285565b1661370b61370560006113e0565b91610289565b03613814575b61371d620800006132c3565b1661373161372b60006113e0565b91610289565b036137db575b61374a6137446000611b33565b91610af0565b136137ca575b61377c613767826137616020613320565b90612e7e565b9161377664010000000061333f565b9061335b565b61378f61378960006113e0565b91610289565b146000146137b8576137aa6137a460006113fc565b5b611f43565b90613399565b612bfd565b90565b6137aa6137c5600161337d565b6137a5565b6137d6906000196132fe565b613750565b906137fe61380e916137f86b048a170391f7dc42444e8fa26132e2565b90612e51565b6138086080612e62565b90612e7e565b90613737565b91613839613849916138336d2216e584f5fa1ea926041bedfe986132a4565b90612e51565b6138436080612e62565b90612e7e565b91613711565b916138756138859161386f6e5d6af8dedb81196699c329225ee604613266565b90612e51565b61387f6080612e62565b90612e7e565b916136ea565b916138b26138c2916138ac6f09aa508b5b7a84e1c677de54f3e99bc9613228565b90612e51565b6138bc6080612e62565b90612e7e565b916136c3565b916138ef6138ff916138e96f31be135f97d08fd981231505542fcfa66131ea565b90612e51565b6138f96080612e62565b90612e7e565b9161369c565b9161392c61393c916139266f70d869a156d2a1b890bb3df62baf32f76131ac565b90612e51565b6139366080612e62565b90612e7e565b91613676565b91613969613979916139636fa9f746462d870fdf8a65dc1f90e061e561316e565b90612e51565b6139736080612e62565b90612e7e565b91613650565b916139a66139b6916139a06fd097f3bdfd2022b8845ad8f792aa5825613130565b90612e51565b6139b06080612e62565b90612e7e565b9161362a565b916139e36139f3916139dd6fe7159475a2c29b7443b29c7fa6e889d96130f2565b90612e51565b6139ed6080612e62565b90612e7e565b91613604565b91613a20613a3091613a1a6ff3392b0822b70005940c7a398e4b70f36130b4565b90612e51565b613a2a6080612e62565b90612e7e565b916135de565b91613a5d613a6d91613a576ff987a7253ac413176f2b074cf7815e54613076565b90612e51565b613a676080612e62565b90612e7e565b916135b8565b91613a9a613aaa91613a946ffcbe86c7900a88aedcffc83b479aa3a4613038565b90612e51565b613aa46080612e62565b90612e7e565b91613592565b91613ad7613ae791613ad16ffe5dee046a99a2a811c461f1969c3053612ffa565b90612e51565b613ae16080612e62565b90612e7e565b9161356c565b91613b14613b2491613b0e6fff2ea16466c96a3843ec78b326b52861612fbf565b90612e51565b613b1e6080612e62565b90612e7e565b91613547565b91613b51613b6191613b4b6fff973b41fa98c081472e6896dfb254c0612f81565b90612e51565b613b5b6080612e62565b90612e7e565b91613522565b91613b8e613b9e91613b886fffcb9843d60f6159c9db58835c926644612f43565b90612e51565b613b986080612e62565b90612e7e565b916134fd565b91613bcb613bdb91613bc56fffe5caca7e10e4e61c3624eaa0941cd0612f05565b90612e51565b613bd56080612e62565b90612e7e565b916134d8565b91613c08613c1891613c026ffff2e50f5f656932ef12357cf3c7fdcc612ec7565b90612e51565b613c126080612e62565b90612e7e565b916134b3565b91613c45613c5591613c3f6ffff97272373d413259a46990580e213a612e35565b90612e51565b613c4f6080612e62565b90612e7e565b9161348e565b613468613c6b600160801b612ddb565b613463565b60006315e4079d60e11b815280613c8960048201610202565b0390fd5b613c9e613c9982612d7b565b612d97565b6133e6565b613cab610fd7565b50339056fe6080604052346100305761001a6100146101de565b91610201565b610022610035565b610d4861082c8239610d4890f35b61003b565b60405190565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b9061006a90610040565b810190811060018060401b0382111761008257604052565b61004a565b9061009a610093610035565b9283610060565b565b600080fd5b600080fd5b600080fd5b600080fd5b60018060401b0381116100cc576100c8602091610040565b0190565b61004a565b60005b8381106100e5575050906000910152565b8060209183015181850152016100d4565b9092919261010b610106826100b0565b610087565b9381855260208501908284011161012757610125926100d1565b565b6100ab565b9080601f8301121561014a57816020610147935191016100f6565b90565b6100a6565b90565b61015b8161014f565b0361016257565b600080fd5b9050519061017482610152565b565b90916060828403126101d957600082015160018060401b0381116101d457836101a091840161012c565b9260208301519060018060401b0382116101cf576101c3816101cc93860161012c565b93604001610167565b90565b6100a1565b6100a1565b61009c565b6101fc611574803803806101f181610087565b928339810190610176565b909192565b610215929161020f91610475565b336104f2565b565b5190565b634e487b7160e01b600052602260045260246000fd5b9060016002830492168015610251575b602083101461024c57565b61021b565b91607f1691610241565b600052602060002090565b601f602091010490565b1b90565b9190600861029091029161028a60001984610270565b92610270565b9181191691161790565b90565b6102b16102ac6102b69261014f565b61029a565b61014f565b90565b90565b91906102d26102cd6102da9361029d565b6102b9565b908354610274565b9055565b600090565b6102f5916102ef6102de565b916102bc565b565b5b818110610303575050565b8061031160006001936102e3565b016102f8565b9190601f8111610327575b505050565b6103336103589361025b565b90602061033f84610266565b83019310610360575b61035190610266565b01906102f7565b388080610322565b915061035181929050610348565b1c90565b90610383906000199060080261036e565b191690565b8161039291610372565b906002021790565b906103a481610217565b9060018060401b038211610464576103c6826103c08554610231565b85610317565b602090601f83116001146103fb579180916103ea936000926103ef575b5050610388565b90555b565b909150015138806103e3565b601f1983169161040a8561025b565b9260005b81811061044c57509160029391856001969410610432575b505050020190556103ed565b610442910151601f841690610372565b9055388080610426565b9193602060018192878701518155019501920161040e565b61004a565b906104739161039a565b565b9061048461048b926003610469565b6004610469565b565b90565b60018060a01b031690565b6104af6104aa6104b49261048d565b61029a565b610490565b90565b6104c09061049b565b90565b6104cc90610490565b90565b6104d8906104c3565b9052565b91906104f0906000602085019401906104cf565b565b8061050e61050861050360006104b7565b6104c3565b916104c3565b1461052b576105299161052160006104b7565b9190916106b4565b565b61055061053860006104b7565b600091829163ec442f0560e01b8352600483016104dc565b0390fd5b61056861056361056d92610490565b61029a565b610490565b90565b61057990610554565b90565b61058590610570565b90565b906105929061057c565b600052602052604060002090565b60001c90565b90565b6105b56105ba916105a0565b6105a6565b90565b6105c790546105a9565b90565b6105d39061014f565b9052565b60409061060161060894969593966105f7606084019860008501906104cf565b60208301906105ca565b01906105ca565b565b90610615910361014f565b90565b60001b90565b9061062b60001991610618565b9181191691161790565b9061064a6106456106519261029d565b6102b9565b825461061e565b9055565b634e487b7160e01b600052601160045260246000fd5b61067a6106809193929361014f565b9261014f565b820180921161068b57565b610655565b9061069b910161014f565b90565b91906106b2906000602085019401906105ca565b565b919091806106d36106cd6106c860006104b7565b6104c3565b916104c3565b146000146107b8576106f86106f1836106ec60026105bd565b61066b565b6002610635565b5b8261071561070f61070a60006104b7565b6104c3565b916104c3565b1460001461078b5761073a6107338361072e60026105bd565b61060a565b6002610635565b5b91909161078661077461076e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361057c565b9361057c565b9361077d610035565b9182918261069e565b0390a3565b6107b3826107ad61079e60008790610588565b916107a8836105bd565b610690565b90610635565b61073b565b6107cc6107c760008390610588565b6105bd565b806107df6107d98561014f565b9161014f565b10610808576107f261080391849061060a565b6107fe60008490610588565b610635565b6106f9565b90610827909192600093849363391434e360e21b8552600485016105d7565b0390fdfe60806040526004361015610013575b6104c6565b61001e6000356100ad565b806306fdde03146100a8578063095ea7b3146100a357806318160ddd1461009e57806323b872dd14610099578063313ce5671461009457806370a082311461008f57806395d89b411461008a578063a9059cbb146100855763dd62ed3e0361000e57610490565b61042c565b6103f7565b6103c2565b61036e565b61030f565b61029f565b610246565b610159565b60e01c90565b60405190565b600080fd5b600080fd5b60009103126100ce57565b6100be565b5190565b60209181520190565b60005b8381106100f4575050906000910152565b8060209183015181850152016100e3565b601f801991011690565b61012e61013760209361013c93610125816100d3565b938480936100d7565b958691016100e0565b610105565b0190565b610156916020820191600081840391015261010f565b90565b34610189576101693660046100c3565b61018561017461062d565b61017c6100b3565b91829182610140565b0390f35b6100b9565b60018060a01b031690565b6101a29061018e565b90565b6101ae81610199565b036101b557565b600080fd5b905035906101c7826101a5565b565b90565b6101d5816101c9565b036101dc57565b600080fd5b905035906101ee826101cc565b565b9190604083820312610219578061020d61021692600086016101ba565b936020016101e1565b90565b6100be565b151590565b61022c9061021e565b9052565b919061024490600060208501940190610223565b565b346102775761027361026261025c3660046101f0565b90610648565b61026a6100b3565b91829182610230565b0390f35b6100b9565b610285906101c9565b9052565b919061029d9060006020850194019061027c565b565b346102cf576102af3660046100c3565b6102cb6102ba610699565b6102c26100b3565b91829182610289565b0390f35b6100b9565b909160608284031261030a576103076102f084600085016101ba565b936102fe81602086016101ba565b936040016101e1565b90565b6100be565b346103405761033c61032b6103253660046102d4565b916106af565b6103336100b3565b91829182610230565b0390f35b6100b9565b60ff1690565b61035490610345565b9052565b919061036c9060006020850194019061034b565b565b3461039e5761037e3660046100c3565b61039a610389610705565b6103916100b3565b91829182610358565b0390f35b6100b9565b906020828203126103bd576103ba916000016101ba565b90565b6100be565b346103f2576103ee6103dd6103d83660046103a3565b610767565b6103e56100b3565b91829182610289565b0390f35b6100b9565b34610427576104073660046100c3565b610423610412610786565b61041a6100b3565b91829182610140565b0390f35b6100b9565b3461045d576104596104486104423660046101f0565b9061079c565b6104506100b3565b91829182610230565b0390f35b6100b9565b919060408382031261048b578061047f61048892600086016101ba565b936020016101ba565b90565b6100be565b346104c1576104bd6104ac6104a6366004610462565b906107d6565b6104b46100b3565b91829182610289565b0390f35b6100b9565b600080fd5b606090565b634e487b7160e01b600052602260045260246000fd5b9060016002830492168015610506575b602083101461050157565b6104d0565b91607f16916104f6565b60209181520190565b600052602060002090565b906000929180549061053f610538836104e6565b8094610510565b91600181169081600014610598575060011461055b575b505050565b6105689192939450610519565b916000925b8184106105805750500190388080610556565b6001816020929593955484860152019101929061056d565b92949550505060ff1916825215156020020190388080610556565b906105bd91610524565b90565b634e487b7160e01b600052604160045260246000fd5b906105e090610105565b810190811067ffffffffffffffff8211176105fa57604052565b6105c0565b9061061f6106189261060f6100b3565b938480926105b3565b03836105d6565b565b61062a906105ff565b90565b6106356104cb565b506106406003610621565b90565b600090565b61066591610654610643565b5061065d610803565b919091610810565b600190565b600090565b60001c90565b90565b6106846106899161066f565b610675565b90565b6106969054610678565b90565b6106a161066a565b506106ac600261068c565b90565b916106d9926106bc610643565b506106d16106c8610803565b8290849161086e565b91909161093e565b600190565b600090565b90565b90565b6106fd6106f8610702926106e3565b6106e6565b610345565b90565b61070d6106de565b5061071860126106e9565b90565b61072f61072a6107349261018e565b6106e6565b61018e565b90565b6107409061071b565b90565b61074c90610737565b90565b9061075990610743565b600052602052604060002090565b61077e6107839161077661066a565b50600061074f565b61068c565b90565b61078e6104cb565b506107996004610621565b90565b6107b9916107a8610643565b506107b1610803565b91909161093e565b600190565b906107c890610743565b600052602052604060002090565b6107fb916107f16107f6926107e961066a565b5060016107be565b61074f565b61068c565b90565b600090565b61080b6107fe565b503390565b9161081e9291600192610a3d565b565b61082990610199565b9052565b60409061085761085e949695939661084d60608401986000850190610820565b602083019061027c565b019061027c565b565b9061086b91036101c9565b90565b92919261087c8183906107d6565b908161089261088c6000196101c9565b916101c9565b0361089f575b5050509050565b816108b26108ac876101c9565b916101c9565b106108d9576108d093946108c7919392610860565b90600092610a3d565b80388080610898565b506108f9849291926000938493637dc7a0d960e11b85526004850161082d565b0390fd5b90565b61091461090f610919926108fd565b6106e6565b61018e565b90565b61092590610900565b90565b919061093c90600060208501940190610820565b565b918261095b610955610950600061091c565b610199565b91610199565b146109b8578161097c610976610971600061091c565b610199565b91610199565b1461098f5761098d92919091610b9b565b565b6109b461099c600061091c565b600091829163ec442f0560e01b835260048301610928565b0390fd5b6109dd6109c5600061091c565b6000918291634b637e8f60e11b835260048301610928565b0390fd5b60001b90565b906109f4600019916109e1565b9181191691161790565b610a12610a0d610a17926101c9565b6106e6565b6101c9565b90565b90565b90610a32610a2d610a39926109fe565b610a1a565b82546109e7565b9055565b909281610a5b610a55610a50600061091c565b610199565b91610199565b14610b295783610a7c610a76610a71600061091c565b610199565b91610199565b14610b0057610aa083610a9b610a94600186906107be565b879061074f565b610a1d565b610aaa575b505050565b919091610af5610ae3610add7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593610743565b93610743565b93610aec6100b3565b91829182610289565b0390a3388080610aa5565b610b25610b0d600061091c565b6000918291634a1406b160e11b835260048301610928565b0390fd5b610b4e610b36600061091c565b600091829163e602df0560e01b835260048301610928565b0390fd5b634e487b7160e01b600052601160045260246000fd5b610b77610b7d919392936101c9565b926101c9565b8201809211610b8857565b610b52565b90610b9891016101c9565b90565b91909180610bba610bb4610baf600061091c565b610199565b91610199565b14600014610c9f57610bdf610bd883610bd3600261068c565b610b68565b6002610a1d565b5b82610bfc610bf6610bf1600061091c565b610199565b91610199565b14600014610c7257610c21610c1a83610c15600261068c565b610860565b6002610a1d565b5b919091610c6d610c5b610c557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93610743565b93610743565b93610c646100b3565b91829182610289565b0390a3565b610c9a82610c94610c856000879061074f565b91610c8f8361068c565b610b8d565b90610a1d565b610c22565b610cb3610cae6000839061074f565b61068c565b80610cc6610cc0856101c9565b916101c9565b10610cef57610cd9610cea918490610860565b610ce56000849061074f565b610a1d565b610be0565b90610d0e909192600093849363391434e360e21b85526004850161082d565b0390fdfea2646970667358221220f28659cfa7a4916592a5b43fc99dd9d0060da09c4c8a8a1d6d54c0bb8d7c86ec64736f6c634300081b0033a26469706673582212200d668c00f0f21fca000d7667c647baa429890a77181cdc311db6f71cbf67db3b64736f6c634300081b0033000000000000000000000000e4a21265a46253573c0e5f50a8251ad3b5d1995e000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000009d05aa83959183ecd3576f1f6abfbb771daf0a63000000000000000000000000cd2d0637c94fe77c2896bbcbb174ceffb08de6d700000000000000000000000012e66c8f215ddd5d48d150c8f46ad0c6fb0f44060000000000000000000000000000000000000000000000000000000001e1338000000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2
Deployed Bytecode
0x60806040526004361015610013575b610f57565b61001e60003561018d565b80631962d947146101885780631cc2bcc21461018357806327c8f8351461017e57806331de8036146101795780633aa10f1f146101745780633fc8cef31461016f5780634de2fae71461016a57806357aa0201146101655780635b54918214610160578063715018a61461015b578063771a3a1d14610156578063791b98bc146101515780637b2768ff1461014c5780638da5cb5b146101475780639759164a146101425780639dbb8c9f1461013d578063bea1dcf814610138578063c31c9c0714610133578063d406d7511461012e578063de04f42e14610129578063e42efd5414610124578063f2fde38b1461011f5763fce4968e0361000e57610f24565b610e1c565b610de9565b610db4565b610d6f565b610cd4565b610c8f565b610c4c565b610c17565b610b72565b610b48565b610abb565b610a16565b6109d3565b61099e565b6108ce565b61083c565b6107be565b61077b565b6106f1565b6103e1565b610350565b610208565b60e01c90565b60405190565b600080fd5b600080fd5b600080fd5b60018060a01b031690565b6101bc906101a8565b90565b6101c8816101b3565b036101cf57565b600080fd5b905035906101e1826101bf565b565b906020828203126101fd576101fa916000016101d4565b90565b61019e565b60000190565b346102365761022061021b3660046101e3565b610fcc565b610228610193565b8061023281610202565b0390f35b610199565b600080fd5b600080fd5b600080fd5b909182601f830112156102845781359167ffffffffffffffff831161027f57602001926001830284011161027a57565b610245565b610240565b61023b565b90565b61029581610289565b0361029c57565b600080fd5b905035906102ae8261028c565b565b9190608083820312610328576102c981600085016101d4565b92602081013567ffffffffffffffff811161032357826102ea91830161024a565b929093604083013567ffffffffffffffff811161031e576103108361031b92860161024a565b9390946060016102a1565b90565b6101a3565b6101a3565b61019e565b610336906101b3565b9052565b919061034e9060006020850194019061032d565b565b34610387576103836103726103663660046102b0565b949390939291926111b6565b61037a610193565b9182918261033a565b0390f35b610199565b600091031261039757565b61019e565b1c90565b60018060a01b031690565b6103bb9060086103c0930261039c565b6103a0565b90565b906103ce91546103ab565b90565b6103de60026000906103c3565b90565b34610411576103f136600461038c565b61040d6103fc6103d1565b610404610193565b9182918261033a565b0390f35b610199565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b906104459061041b565b810190811067ffffffffffffffff82111761045f57604052565b610425565b90610477610470610193565b928361043b565b565b67ffffffffffffffff81116104975761049360209161041b565b0190565b610425565b90826000939282370152565b909291926104bd6104b882610479565b610464565b938185526020850190828401116104d9576104d79261049c565b565b610416565b9080601f830112156104fc578160206104f9933591016104a8565b90565b61023b565b151590565b61050f81610501565b0361051657565b600080fd5b9050359061052882610506565b565b919060a0838203126105955761054381600085016102a1565b9261055182602083016102a1565b9261055f83604084016102a1565b9260608301359067ffffffffffffffff8211610590576105848161058d9386016104de565b9360800161051b565b90565b6101a3565b61019e565b5190565b60209181520190565b60005b8381106105bb575050906000910152565b8060209183015181850152016105aa565b6105eb6105f46020936105f9936105e28161059a565b9384809361059e565b958691016105a7565b61041b565b0190565b5190565b60209181520190565b60200190565b60209181520190565b6106386106416020936106469361062f8161059a565b93848093610610565b958691016105a7565b61041b565b0190565b9061065491610619565b90565b60200190565b9061067161066a836105fd565b8092610601565b90816106826020830284019461060a565b926000915b83831061069657505050505090565b909192939460206106b86106b28385600195038752895161064a565b97610657565b9301930191939290610687565b90916106e06106ee93604084019084820360008601526105cc565b91602081840391015261065d565b90565b346107265761070d61070436600461052a565b93929092611567565b90610722610719610193565b928392836106c5565b0390f35b610199565b67ffffffffffffffff1690565b6107418161072b565b0361074857565b600080fd5b9050359061075a82610738565b565b90602082820312610776576107739160000161074d565b90565b61019e565b346107a95761079361078e36600461075c565b611741565b61079b610193565b806107a581610202565b0390f35b610199565b6107bb60076000906103c3565b90565b346107ee576107ce36600461038c565b6107ea6107d96107ae565b6107e1610193565b9182918261033a565b0390f35b610199565b60ff1690565b610802816107f3565b0361080957565b600080fd5b9050359061081b826107f9565b565b90602082820312610837576108349160000161080e565b90565b61019e565b3461086a5761085461084f36600461081d565b6117ca565b61085c610193565b8061086681610202565b0390f35b610199565b60ff1690565b61088590600861088a930261039c565b61086f565b90565b906108989154610875565b90565b6108a8600260159061088d565b90565b6108b4906107f3565b9052565b91906108cc906000602085019401906108ab565b565b346108fe576108de36600461038c565b6108fa6108e961089b565b6108f1610193565b918291826108b8565b0390f35b610199565b60018060a01b031690565b61091e906008610923930261039c565b610903565b90565b90610931915461090e565b90565b6109416008600090610926565b90565b90565b61095b610956610960926101a8565b610944565b6101a8565b90565b61096c90610947565b90565b61097890610963565b90565b6109849061096f565b9052565b919061099c9060006020850194019061097b565b565b346109ce576109ae36600461038c565b6109ca6109b9610934565b6109c1610193565b91829182610988565b0390f35b610199565b34610a01576109e336600461038c565b6109eb611823565b6109f3610193565b806109fd81610202565b0390f35b610199565b610a13600260149061088d565b90565b34610a4657610a2636600461038c565b610a42610a31610a06565b610a39610193565b918291826108b8565b0390f35b610199565b60018060a01b031690565b610a66906008610a6b930261039c565b610a4b565b90565b90610a799154610a56565b90565b610a896009600090610a6e565b90565b610a9590610963565b90565b610aa190610a8c565b9052565b9190610ab990600060208501940190610a98565b565b34610aeb57610acb36600461038c565b610ae7610ad6610a7c565b610ade610193565b91829182610aa5565b0390f35b610199565b60020b90565b610aff81610af0565b03610b0657565b600080fd5b90503590610b1882610af6565b565b9190604083820312610b435780610b37610b4092600086016101d4565b93602001610b0b565b90565b61019e565b610b5c610b56366004610b1a565b906118d0565b610b64610193565b80610b6e81610202565b0390f35b34610ba257610b8236600461038c565b610b9e610b8d6119c2565b610b95610193565b9182918261033a565b0390f35b610199565b60018060a01b031690565b610bc2906008610bc7930261039c565b610ba7565b90565b90610bd59154610bb2565b90565b610be56003600090610bca565b90565b610bf190610963565b90565b610bfd90610be8565b9052565b9190610c1590600060208501940190610bf4565b565b34610c4757610c2736600461038c565b610c43610c32610bd8565b610c3a610193565b91829182610c01565b0390f35b610199565b34610c7a57610c64610c5f3660046101e3565b611a47565b610c6c610193565b80610c7681610202565b0390f35b610199565b610c8c60016000906103c3565b90565b34610cbf57610c9f36600461038c565b610cbb610caa610c7f565b610cb2610193565b9182918261033a565b0390f35b610199565b610cd1600a6000906103c3565b90565b34610d0457610ce436600461038c565b610d00610cef610cc4565b610cf7610193565b9182918261033a565b0390f35b610199565b67ffffffffffffffff1690565b610d26906008610d2b930261039c565b610d09565b90565b90610d399154610d16565b90565b610d496000601490610d2e565b90565b610d559061072b565b9052565b9190610d6d90600060208501940190610d4c565b565b34610d9f57610d7f36600461038c565b610d9b610d8a610d3c565b610d92610193565b91829182610d59565b0390f35b610199565b610db1600260169061088d565b90565b34610de457610dc436600461038c565b610de0610dcf610da4565b610dd7610193565b918291826108b8565b0390f35b610199565b34610e1757610e01610dfc36600461081d565b611aab565b610e09610193565b80610e1381610202565b0390f35b610199565b34610e4a57610e34610e2f3660046101e3565b611b1e565b610e3c610193565b80610e4681610202565b0390f35b610199565b909160a082840312610ed557600082013567ffffffffffffffff8111610ed05783610e7b91840161024a565b929093602082013567ffffffffffffffff8111610ecb5781610e9e91840161024a565b929093610ec8610eb184604085016102a1565b93610ebf8160608601610b0b565b93608001610b0b565b90565b6101a3565b6101a3565b61019e565b610ee390610963565b90565b610eef90610eda565b9052565b610efc90610289565b9052565b916020610f22929493610f1b60408201966000830190610ee6565b0190610ef3565b565b610f3e610f32366004610e4f565b95949094939193612306565b90610f53610f4a610193565b92839283610f00565b0390f35b600080fd5b610f6d90610f68612b9a565b610fbf565b565b60001b90565b90610f8660018060a01b0391610f6f565b9181191691161790565b610f9990610963565b90565b90565b90610fb4610faf610fbb92610f90565b610f9c565b8254610f75565b9055565b610fca906001610f9f565b565b610fd590610f5c565b565b600090565b60001c90565b90565b610ff1610ff691610fdc565b610fe2565b90565b6110039054610fe5565b90565b9160206110289294936110216040820196600083019061032d565b0190610ef3565b565b60200190565b90565b60ff60f81b1690565b60f81b90565b61105661105161105b92611030565b61103c565b611033565b90565b61106790610963565b90565b60209181520190565b919061108d81611086816110929561106a565b809561049c565b61041b565b0190565b9594926110cf946110b96110c79360409560608b01918b830360008d0152611073565b9188830360208a0152611073565b940190610ef3565b565b905090565b6110fb6110f2926020926110e98161059a565b948580936110d1565b938491016105a7565b0190565b61110d9061111393926110d6565b906110d6565b90565b90565b61112561112a91611033565b611116565b9052565b60601b90565b61113d9061112e565b90565b61114990611134565b90565b61115861115d916101b3565b611140565b9052565b90565b90565b61117361117891611161565b611164565b9052565b926111aa60146111b2946111a260018861119a60209b9a8c99611119565b01809261114c565b018092611167565b018092611167565b0190565b946112d7936112a06112c89361127a6112ef999896986111d4610fd7565b506112096111e26004610ff9565b916111fa6111ee610193565b93849260208401611006565b6020820181038252038261043b565b61121b6112158261059a565b9161102a565b209861126b61122a60ff611042565b986112343061105e565b9b976115749561124660208801610464565b96808852613cb16020890139939791909161125f610193565b98899560208701611096565b6020820181038252038461043b565b611291611285610193565b938492602084016110ff565b6020820181038252038261043b565b6112b26112ac8261059a565b9161102a565b20906112bc610193565b9586946020860161117c565b6020820181038252038261043b565b6112e96112e38261059a565b9161102a565b20612c19565b90565b606090565b606090565b90565b61131361130e611318926112fc565b610944565b610289565b90565b9061132d61132883610479565b610464565b918252565b369037565b9061135c6113448361131b565b926020806113528693610479565b9201910390611332565b565b90565b61137561137061137a9261135e565b610944565b6107f3565b90565b611387600b611361565b90565b61139e6113996113a3926107f3565b61103c565b611033565b90565b634e487b7160e01b600052603260045260246000fd5b906113c68261059a565b8110156113d857600160209102010190565b6113a6565b90565b6113f46113ef6113f9926113dd565b610944565b610289565b90565b61141061140b611415926113dd565b610944565b6107f3565b90565b61142260006113fc565b90565b90565b61143c61143761144192611425565b610944565b610289565b90565b67ffffffffffffffff811161145c5760208091020190565b610425565b9061147361146e83611444565b610464565b918252565b606090565b60005b82811061148c57505050565b602090611497611478565b8184015201611480565b906114c66114ae83611461565b926020806114bc8693611444565b920191039061147d565b565b6114d46114d991610fdc565b6103a0565b90565b6114e690546114c8565b90565b906114f3826105fd565b811015611504576020809102010190565b6113a6565b61151290610501565b9052565b611565946115508298979561154660809661153c61155d97600060a0890198019061032d565b60208c0190610ef3565b60408a0190610ef3565b87820360608901526105cc565b940190611509565b565b9394926116b892916116836116929261157e6112f2565b506115876112f7565b5061159a61159560026112ff565b611337565b986115ab6115a661137d565b61138a565b6115c48b6115be60009360001a936113e0565b906113bc565b536115d56115d0611418565b61138a565b6115ee8b6115e860019360001a93611428565b906113bc565b5361165e6116046115ff60026112ff565b6114a1565b9961163861161260066114dc565b61162961161d610193565b93849260208401611006565b6020820181038252038261043b565b6116588b9160009061165261164c836113e0565b856114e9565b526113e0565b906114e9565b515061166a60056114dc565b9395919091611677610193565b96879560208701611516565b6020820181038252038261043b565b6116b284916001906116ac6116a683611428565b856114e9565b52611428565b906114e9565b5150565b6116cd906116c8612b9a565b611734565b565b60a01b90565b906116eb67ffffffffffffffff60a01b916116cf565b9181191691161790565b61170961170461170e9261072b565b610944565b61072b565b90565b90565b90611729611724611730926116f5565b611711565b82546116d5565b9055565b61173f906000611714565b565b61174a906116bc565b565b61175d90611758612b9a565b6117bd565b565b60a81b90565b9061177460ff60a81b9161175f565b9181191691161790565b61179261178d611797926107f3565b610944565b6107f3565b90565b90565b906117b26117ad6117b99261177e565b61179a565b8254611765565b9055565b6117c890600261179d565b565b6117d39061174c565b565b6117dd612b9a565b6117e561180f565b565b6117fb6117f6611800926113dd565b610944565b6101a8565b90565b61180c906117e7565b90565b61182161181c6000611803565b612c3e565b565b61182b6117d5565b565b60e81b90565b61183c9061182d565b90565b61184b61185091610af0565b611833565b9052565b60149392611874858361186c60039561187c9761114c565b01809261183f565b01809261114c565b0190565b61188990610947565b90565b61189590611880565b90565b6118a190610963565b90565b600080fd5b60e01b90565b60009103126118ba57565b61019e565b6118c7610193565b3d6000823e3d90fd5b611909611921926118fa6118e460076114dc565b91936118ee610193565b94859360208501611854565b6020820181038252038261043b565b3434906000929161191b6000946113e0565b91611567565b9061193c611937611932600a6114dc565b61188c565b611898565b916324856bc334939093929193813b156119bd5760009361196e91611979611962610193565b978896879586946118a9565b8452600484016106c5565b03925af180156119b85761198b575b50565b6119ab9060003d81116119b1575b6119a3818361043b565b8101906118af565b38611988565b503d611999565b6118bf565b6118a4565b6119ca610fd7565b506119d560006114dc565b90565b6119e9906119e4612b9a565b611a32565b565b6119f490610947565b90565b611a00906119eb565b90565b611a0c906119eb565b90565b90565b90611a27611a22611a2e92611a03565b611a0f565b8254610f75565b9055565b611a3e611a45916119f7565b6003611a12565b565b611a50906119d8565b565b611a6390611a5e612b9a565b611a9e565b565b90611a7460ff60a01b916116cf565b9181191691161790565b90611a93611a8e611a9a9261177e565b61179a565b8254611a65565b9055565b611aa9906002611a7e565b565b611ab490611a52565b565b611ac790611ac2612b9a565b611ac9565b565b80611ae5611adf611ada6000611803565b6101b3565b916101b3565b14611af557611af390612c3e565b565b611b1a611b026000611803565b6000918291631e4fbdf760e01b83526004830161033a565b0390fd5b611b2790611ab6565b565b600090565b600090565b611b47611b42611b4c926113dd565b610944565b610af0565b90565b634e487b7160e01b600052601260045260246000fd5b611b71611b7791610af0565b91610af0565b908115611b82570790565b611b4f565b60007f5370696e6e65724572726f723a20496e76616c6964207469636b000000000000910152565b611bbc601a60209261106a565b611bc581611b87565b0190565b611bdf9060208101906000818303910152611baf565b90565b15611be957565b611bf1610193565b62461bcd60e51b815280611c0760048201611bc9565b0390fd5b611c17611c1c91610fdc565b610903565b90565b611c299054611c0b565b90565b90505190611c39826101bf565b565b90602082820312611c5557611c5291600001611c2c565b90565b61019e565b611c6390610af0565b9052565b611c70906101a8565b9052565b611caa611cb194611ca0606094989795611c96608086019a600087019061032d565b602085019061032d565b6040830190611c5a565b0190611c67565b565b611cbe610160610464565b90565b90611ccb906101b3565b9052565b90611cd990610af0565b9052565b90611ce790610289565b9052565b611cf7611cfc91610fdc565b610a4b565b90565b611d099054611ceb565b90565b90505190611d1982610506565b565b90602082820312611d3557611d3291600001611d0c565b90565b61019e565b90505190611d478261028c565b565b6fffffffffffffffffffffffffffffffff1690565b611d6781611d49565b03611d6e57565b600080fd5b90505190611d8082611d5e565b565b608081830312611dc457611d998260008301611d3a565b92611dc1611daa8460208501611d73565b93611db88160408601611d3a565b93606001611d3a565b90565b61019e565b611dd2906101b3565b9052565b611ddf90610af0565b9052565b611dec90610289565b9052565b9061014080611ebb93611e0b60008201516000860190611dc9565b611e1d60208201516020860190611dc9565b611e2f60408201516040860190611dd6565b611e4160608201516060860190611dd6565b611e5360808201516080860190611dd6565b611e6560a082015160a0860190611de3565b611e7760c082015160c0860190611de3565b611e8960e082015160e0860190611de3565b611e9d610100820151610100860190611de3565b611eb1610120820151610120860190611dc9565b0151910190611de3565b565b9190611ed29060006101608501940190611df0565b565b611ee0611ee591610fdc565b610ba7565b90565b611ef29054611ed4565b90565b60a01c90565b611f07611f0c91611ef5565b610d09565b90565b611f199054611efb565b90565b60a81c90565b611f2e611f3391611f1c565b61086f565b90565b611f409054611f22565b90565b611f57611f52611f5c926107f3565b610944565b610289565b90565b611f6890611f43565b9052565b90959492611fb894611fa7611fb192611f9d608096611f9360a088019c600089019061032d565b602087019061032d565b6040850190610d4c565b6060830190610ef3565b0190611f5f565b565b604090611fe4611feb9496959396611fda6060840198600085019061032d565b602083019061032d565b0190610ef3565b565b611ff690610947565b90565b61200290611fed565b90565b61200e90610963565b90565b919061202590600060208501940190610ef3565b565b60b01c90565b61203961203e91612027565b61086f565b90565b61204b905461202d565b90565b634e487b7160e01b600052601160045260246000fd5b61207361207991939293610289565b92610289565b91612085838202610289565b92818404149015171561209457565b61204e565b90565b6120b06120ab6120b592612099565b610944565b610289565b90565b6120c46120ca91610289565b91610289565b9081156120d5570490565b611b4f565b6120e96120ef91939293610289565b92610289565b82039182116120fa57565b61204e565b61210890610947565b90565b612114906120ff565b90565b61212090610963565b90565b61212f600080926110d1565b0190565b61213c90612123565b90565b3d60001461215c576121503d61131b565b903d6000602084013e5b565b6121646112f2565b9061215a565b60207f746f636f6c206665657300000000000000000000000000000000000000000000917f5370696e6e65724572726f723a204661696c656420746f2073656e642070726f60008201520152565b6121c5602a60409261106a565b6121ce8161216a565b0190565b6121e890602081019060008183039101526121b8565b90565b6121f490610289565b60001981146122035760010190565b61204e565b9061221560001991610f6f565b9181191691161790565b61223361222e61223892610289565b610944565b610289565b90565b90565b9061225361224e61225a9261221f565b61223b565b8254612208565b9055565b94856122b1916122ca966122a46122bf976122d19d9f9e9c9660c09c9861229061229a92600060e08a0199019061032d565b60208d0190610ef3565b60408b019061032d565b88830360608a0152611073565b918583036080870152611073565b9660a0830190610ef3565b0190610ef3565b565b6040906122fd61230494969593966122f36060840198600085019061032d565b6020830190610ef3565b019061032d565b565b9291909593969496612316611b29565b5061231f611b2e565b508461233461232e6000611b33565b91610af0565b141580612b70575b61234590611be2565b3361237a6123536004610ff9565b9161236b61235f610193565b93849260208401611006565b6020820181038252038261043b565b61238c6123868261059a565b9161102a565b20848890849186859061239d610193565b9461157486019386851067ffffffffffffffff861117612b6b5786956123ca95611574613cb18939611096565b03906000f58015612b665797806123e087612d25565b9083916123ed60006113e0565b928c8a6123f982610eda565b9161240460076114dc565b9761240e82610eda565b61242961242361241e60076114dc565b6101b3565b916101b3565b11612b20575b9061243b6020926133a7565b90612485600061245361244e6008611c1f565b61096f565b9261249061246563232aa5ac92610eda565b9561247060076114dc565b98612479610193565b998a98899788966118a9565b865260048601611c74565b03925af18015612b1b57612aef575b5094938a939291600092600094306124b69061105e565b9642986124c1611cb3565b9a60008c01906124d091611cc1565b60208b01906124de91611cc1565b60408a01906124ec91611ccf565b60608901906124fa91611ccf565b608088019061250891611ccf565b60a087019061251691611cdd565b60c086019061252491611cdd565b61252d906113e0565b60e085019061253b91611cdd565b612544906113e0565b61010084019061255391611cdd565b61012083019061256291611cc1565b61014082019061257191611cdd565b8861257b90610eda565b9063095ea7b39161258c6009611cff565b61259590610a8c565b9284906125a0610193565b9485926125ad84936118a9565b835260048301916125bd92611006565b03815a602094600091f1908115612aea5761261692608092612abe575b506125ed6125e86009611cff565b610a8c565b61260b6000636d70c4156125ff610193565b968795869485936118a9565b835260048301611ebd565b03925af1908115612ab957600091612a8a575b509687602061264061263b6003611ee8565b610be8565b634e54db099061268c600061265d6126586009611cff565b610a8c565b93612697339761266c84611f0f565b906126776002611f36565b91612680610193565b9a8b998a9889976118a9565b875260048701611f6c565b03925af1908115612a8557600091612a57575b50956126be6126b96009611cff565b610a8c565b6342842e0e6126cc3061105e565b89928c92813b15612a525760006126f69161270182966126ea610193565b988997889687956118a9565b855260048501611fba565b03925af18015612a4d57612a20575b5061272261271d88611ff9565b612005565b6367a4d1c38a823b15612a1b576127599261274e60008094612742610193565b968795869485936118a9565b835260048301612011565b03925af18015612a16576129e9575b506127996127883461278261277d6002612041565b611f43565b90612064565b6127936103e861209c565b906120b8565b908a6127e46127a93485906120da565b926127d56127c16127ba60076114dc565b9294610eda565b6127c9610193565b94859360208501611854565b6020820181038252038261043b565b346127f86127f260006113e0565b91610289565b11612920575b50506000806128489261282161281c61281760016114dc565b61210b565b612117565b9061282a610193565b908161283581612133565b03925af161284161213f565b5015610501565b6128fe576128b39161286c6128656128606004610ff9565b6121eb565b600461223e565b6128758a610eda565b93899533979391909183947f0d4d53a5773fac520a88c07c7b8259dc61a7ef40b1122fd0540942520f195104996128aa610193565b998a998a61225e565b0390a16128bf84610eda565b908390916128f97f11a788de3e663cc1185acf83a460860c7ca3359f469a2fdad8ff2d6caaf83b72936128f0610193565b938493846122d3565b0390a1565b612906610193565b62461bcd60e51b81528061291c600482016121d2565b0390fd5b61293c90828390600092916129366000946113e0565b91611567565b61295661295161294c600a6114dc565b61188c565b611898565b926324856bc390939093929193813b156129e4576000936129889161299361297c610193565b978896879586946118a9565b8452600484016106c5565b03925af180156129df576128489260009283926129b3575b5092506127fe565b6129d290833d81116129d8575b6129ca818361043b565b8101906118af565b386129ab565b503d6129c0565b6118bf565b6118a4565b612a099060003d8111612a0f575b612a01818361043b565b8101906118af565b38612768565b503d6129f7565b6118bf565b6118a4565b612a409060003d8111612a46575b612a38818361043b565b8101906118af565b38612710565b503d612a2e565b6118bf565b6118a4565b612a78915060203d8111612a7e575b612a70818361043b565b810190611c3b565b386126aa565b503d612a66565b6118bf565b612aab915060803d8111612ab2575b612aa3818361043b565b810190611d82565b5050612629565b503d612a99565b6118bf565b612ade9060203d8111612ae3575b612ad6818361043b565b810190611d1b565b6125da565b503d612acc565b6118bf565b612b0f9060203d8111612b14575b612b07818361043b565b810190611c3b565b61249f565b503d612afd565b6118bf565b9750509350505050612b329150612d4c565b8190612b3e60006113e0565b9184928c8a6020612b4f60076114dc565b9261243b612b5c82610eda565b999192505061242f565b6118bf565b610425565b50612345612b7f898790611b65565b612b92612b8c6000611b33565b91610af0565b14905061233c565b612ba26119c2565b612bbb612bb5612bb0613ca3565b6101b3565b916101b3565b03612bc257565b612be5612bcd613ca3565b600091829163118cdaa760e01b83526004830161033a565b0390fd5b612bf5612bfa91610fdc565b61221f565b90565b612c11612c0c612c1692610289565b610944565b6101a8565b90565b612c36612c31612c3b92612c2b610fd7565b50612be9565b612bfd565b610963565b90565b612c4860006114dc565b612c53826000610f9f565b90612c87612c817f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093610f90565b91610f90565b91612c90610193565b80612c9a81610202565b0390a3565b600090565b90565b612cbb612cb6612cc092612ca4565b610944565b610af0565b90565b612cd0620d89e719612ca7565b90565b612cdf90600003610af0565b90565b612cf2612ced612cc3565b612cd3565b90565b612d01612d0791610af0565b91610af0565b908115612d12570590565b611b4f565b90612d229102610af0565b90565b612d4990612d31612c9f565b50612d44612d3d612ce2565b8290612cf5565b612d17565b90565b612d7090612d58612c9f565b50612d6b612d64612cc3565b8290612cf5565b612d17565b90565b600090565b90565b612d8f612d8a612d9492610af0565b610944565b612d78565b90565b612dab612da6612db092612d78565b610944565b610289565b90565b612dbf90600003612d78565b90565b90565b70ffffffffffffffffffffffffffffffffff1690565b612def612dea612df492612dc2565b610944565b612dc5565b90565b90565b612e0e612e09612e1392612df7565b610944565b612dc5565b90565b612e2a612e25612e2f92612dc5565b610944565b610289565b90565b90565b612e49612e44612e4e92612e32565b610944565b610289565b90565b90612e5c9102610289565b90565b90565b612e76612e71612e7b92612e5f565b610944565b6107f3565b90565b612e9d90612e97612e91612ea2946107f3565b91610289565b9061039c565b610289565b90565b90565b612ebc612eb7612ec192612ea5565b610944565b610289565b90565b90565b612edb612ed6612ee092612ec4565b610944565b610289565b90565b90565b612efa612ef5612eff92612ee3565b610944565b610289565b90565b90565b612f19612f14612f1e92612f02565b610944565b610289565b90565b90565b612f38612f33612f3d92612f21565b610944565b610289565b90565b90565b612f57612f52612f5c92612f40565b610944565b610289565b90565b90565b612f76612f71612f7b92612f5f565b610944565b610289565b90565b90565b612f95612f90612f9a92612f7e565b610944565b610289565b90565b90565b612fb4612faf612fb992612f9d565b610944565b610289565b90565b90565b612fd3612fce612fd892612fbc565b610944565b610289565b90565b612fef612fea612ff492612e5f565b610944565b610289565b90565b90565b61300e61300961301392612ff7565b610944565b610289565b90565b90565b61302d61302861303292613016565b610944565b610289565b90565b90565b61304c61304761305192613035565b610944565b610289565b90565b90565b61306b61306661307092613054565b610944565b610289565b90565b90565b61308a61308561308f92613073565b610944565b610289565b90565b90565b6130a96130a46130ae92613092565b610944565b610289565b90565b90565b6130c86130c36130cd926130b1565b610944565b610289565b90565b90565b6130e76130e26130ec926130d0565b610944565b610289565b90565b90565b61310661310161310b926130ef565b610944565b610289565b90565b90565b61312561312061312a9261310e565b610944565b610289565b90565b90565b61314461313f6131499261312d565b610944565b610289565b90565b90565b61316361315e6131689261314c565b610944565b610289565b90565b90565b61318261317d6131879261316b565b610944565b610289565b90565b90565b6131a161319c6131a69261318a565b610944565b610289565b90565b90565b6131c06131bb6131c5926131a9565b610944565b610289565b90565b90565b6131df6131da6131e4926131c8565b610944565b610289565b90565b90565b6131fe6131f9613203926131e7565b610944565b610289565b90565b90565b61321d61321861322292613206565b610944565b610289565b90565b90565b61323c61323761324192613225565b610944565b610289565b90565b90565b61325b61325661326092613244565b610944565b610289565b90565b90565b61327a61327561327f92613263565b610944565b610289565b90565b90565b61329961329461329e92613282565b610944565b610289565b90565b90565b6132b86132b36132bd926132a1565b610944565b610289565b90565b90565b6132d76132d26132dc926132c0565b610944565b610289565b90565b90565b6132f66132f16132fb926132df565b610944565b610289565b90565b61330a61331091610289565b91610289565b90811561331b570490565b611b4f565b61333461332f61333992612f5f565b610944565b6107f3565b90565b90565b61335361334e6133589261333c565b610944565b610289565b90565b61336761336d91610289565b91610289565b908115613378570690565b611b4f565b61339161338c61339692611425565b610944565b6107f3565b90565b906133a49101610289565b90565b6133af612d73565b50806133c46133be6000611b33565b91610af0565b12600014613c8d576133e56133e06133db83612d7b565b612db3565b612d97565b5b908161341161340b6134066134016133fc612ce2565b612d7b565b612d97565b610289565b91610289565b11613c7057816137b0916137b5936134296001611428565b1661343d61343760006113e0565b91610289565b1415600014613c5b576134686134626ffffcb933bd6fad37aa2d162d1a594001612dfa565b5b612e16565b918061347460026112ff565b1661348861348260006113e0565b91610289565b03613c1e575b806134996004612ea8565b166134ad6134a760006113e0565b91610289565b03613be1575b806134be6008612ee6565b166134d26134cc60006113e0565b91610289565b03613ba4575b806134e36010612f24565b166134f76134f160006113e0565b91610289565b03613b67575b806135086020612f62565b1661351c61351660006113e0565b91610289565b03613b2a575b8061352d6040612fa0565b1661354161353b60006113e0565b91610289565b03613aed575b806135526080612fdb565b1661356661356060006113e0565b91610289565b03613ab0575b80613578610100613019565b1661358c61358660006113e0565b91610289565b03613a73575b8061359e610200613057565b166135b26135ac60006113e0565b91610289565b03613a36575b806135c4610400613095565b166135d86135d260006113e0565b91610289565b036139f9575b806135ea6108006130d3565b166135fe6135f860006113e0565b91610289565b036139bc575b80613610611000613111565b1661362461361e60006113e0565b91610289565b0361397f575b8061363661200061314f565b1661364a61364460006113e0565b91610289565b03613942575b8061365c61400061318d565b1661367061366a60006113e0565b91610289565b03613905575b806136826180006131cb565b1661369661369060006113e0565b91610289565b036138c8575b806136a962010000613209565b166136bd6136b760006113e0565b91610289565b0361388b575b806136d062020000613247565b166136e46136de60006113e0565b91610289565b0361384f575b806136f762040000613285565b1661370b61370560006113e0565b91610289565b03613814575b61371d620800006132c3565b1661373161372b60006113e0565b91610289565b036137db575b61374a6137446000611b33565b91610af0565b136137ca575b61377c613767826137616020613320565b90612e7e565b9161377664010000000061333f565b9061335b565b61378f61378960006113e0565b91610289565b146000146137b8576137aa6137a460006113fc565b5b611f43565b90613399565b612bfd565b90565b6137aa6137c5600161337d565b6137a5565b6137d6906000196132fe565b613750565b906137fe61380e916137f86b048a170391f7dc42444e8fa26132e2565b90612e51565b6138086080612e62565b90612e7e565b90613737565b91613839613849916138336d2216e584f5fa1ea926041bedfe986132a4565b90612e51565b6138436080612e62565b90612e7e565b91613711565b916138756138859161386f6e5d6af8dedb81196699c329225ee604613266565b90612e51565b61387f6080612e62565b90612e7e565b916136ea565b916138b26138c2916138ac6f09aa508b5b7a84e1c677de54f3e99bc9613228565b90612e51565b6138bc6080612e62565b90612e7e565b916136c3565b916138ef6138ff916138e96f31be135f97d08fd981231505542fcfa66131ea565b90612e51565b6138f96080612e62565b90612e7e565b9161369c565b9161392c61393c916139266f70d869a156d2a1b890bb3df62baf32f76131ac565b90612e51565b6139366080612e62565b90612e7e565b91613676565b91613969613979916139636fa9f746462d870fdf8a65dc1f90e061e561316e565b90612e51565b6139736080612e62565b90612e7e565b91613650565b916139a66139b6916139a06fd097f3bdfd2022b8845ad8f792aa5825613130565b90612e51565b6139b06080612e62565b90612e7e565b9161362a565b916139e36139f3916139dd6fe7159475a2c29b7443b29c7fa6e889d96130f2565b90612e51565b6139ed6080612e62565b90612e7e565b91613604565b91613a20613a3091613a1a6ff3392b0822b70005940c7a398e4b70f36130b4565b90612e51565b613a2a6080612e62565b90612e7e565b916135de565b91613a5d613a6d91613a576ff987a7253ac413176f2b074cf7815e54613076565b90612e51565b613a676080612e62565b90612e7e565b916135b8565b91613a9a613aaa91613a946ffcbe86c7900a88aedcffc83b479aa3a4613038565b90612e51565b613aa46080612e62565b90612e7e565b91613592565b91613ad7613ae791613ad16ffe5dee046a99a2a811c461f1969c3053612ffa565b90612e51565b613ae16080612e62565b90612e7e565b9161356c565b91613b14613b2491613b0e6fff2ea16466c96a3843ec78b326b52861612fbf565b90612e51565b613b1e6080612e62565b90612e7e565b91613547565b91613b51613b6191613b4b6fff973b41fa98c081472e6896dfb254c0612f81565b90612e51565b613b5b6080612e62565b90612e7e565b91613522565b91613b8e613b9e91613b886fffcb9843d60f6159c9db58835c926644612f43565b90612e51565b613b986080612e62565b90612e7e565b916134fd565b91613bcb613bdb91613bc56fffe5caca7e10e4e61c3624eaa0941cd0612f05565b90612e51565b613bd56080612e62565b90612e7e565b916134d8565b91613c08613c1891613c026ffff2e50f5f656932ef12357cf3c7fdcc612ec7565b90612e51565b613c126080612e62565b90612e7e565b916134b3565b91613c45613c5591613c3f6ffff97272373d413259a46990580e213a612e35565b90612e51565b613c4f6080612e62565b90612e7e565b9161348e565b613468613c6b600160801b612ddb565b613463565b60006315e4079d60e11b815280613c8960048201610202565b0390fd5b613c9e613c9982612d7b565b612d97565b6133e6565b613cab610fd7565b50339056fe6080604052346100305761001a6100146101de565b91610201565b610022610035565b610d4861082c8239610d4890f35b61003b565b60405190565b600080fd5b601f801991011690565b634e487b7160e01b600052604160045260246000fd5b9061006a90610040565b810190811060018060401b0382111761008257604052565b61004a565b9061009a610093610035565b9283610060565b565b600080fd5b600080fd5b600080fd5b600080fd5b60018060401b0381116100cc576100c8602091610040565b0190565b61004a565b60005b8381106100e5575050906000910152565b8060209183015181850152016100d4565b9092919261010b610106826100b0565b610087565b9381855260208501908284011161012757610125926100d1565b565b6100ab565b9080601f8301121561014a57816020610147935191016100f6565b90565b6100a6565b90565b61015b8161014f565b0361016257565b600080fd5b9050519061017482610152565b565b90916060828403126101d957600082015160018060401b0381116101d457836101a091840161012c565b9260208301519060018060401b0382116101cf576101c3816101cc93860161012c565b93604001610167565b90565b6100a1565b6100a1565b61009c565b6101fc611574803803806101f181610087565b928339810190610176565b909192565b610215929161020f91610475565b336104f2565b565b5190565b634e487b7160e01b600052602260045260246000fd5b9060016002830492168015610251575b602083101461024c57565b61021b565b91607f1691610241565b600052602060002090565b601f602091010490565b1b90565b9190600861029091029161028a60001984610270565b92610270565b9181191691161790565b90565b6102b16102ac6102b69261014f565b61029a565b61014f565b90565b90565b91906102d26102cd6102da9361029d565b6102b9565b908354610274565b9055565b600090565b6102f5916102ef6102de565b916102bc565b565b5b818110610303575050565b8061031160006001936102e3565b016102f8565b9190601f8111610327575b505050565b6103336103589361025b565b90602061033f84610266565b83019310610360575b61035190610266565b01906102f7565b388080610322565b915061035181929050610348565b1c90565b90610383906000199060080261036e565b191690565b8161039291610372565b906002021790565b906103a481610217565b9060018060401b038211610464576103c6826103c08554610231565b85610317565b602090601f83116001146103fb579180916103ea936000926103ef575b5050610388565b90555b565b909150015138806103e3565b601f1983169161040a8561025b565b9260005b81811061044c57509160029391856001969410610432575b505050020190556103ed565b610442910151601f841690610372565b9055388080610426565b9193602060018192878701518155019501920161040e565b61004a565b906104739161039a565b565b9061048461048b926003610469565b6004610469565b565b90565b60018060a01b031690565b6104af6104aa6104b49261048d565b61029a565b610490565b90565b6104c09061049b565b90565b6104cc90610490565b90565b6104d8906104c3565b9052565b91906104f0906000602085019401906104cf565b565b8061050e61050861050360006104b7565b6104c3565b916104c3565b1461052b576105299161052160006104b7565b9190916106b4565b565b61055061053860006104b7565b600091829163ec442f0560e01b8352600483016104dc565b0390fd5b61056861056361056d92610490565b61029a565b610490565b90565b61057990610554565b90565b61058590610570565b90565b906105929061057c565b600052602052604060002090565b60001c90565b90565b6105b56105ba916105a0565b6105a6565b90565b6105c790546105a9565b90565b6105d39061014f565b9052565b60409061060161060894969593966105f7606084019860008501906104cf565b60208301906105ca565b01906105ca565b565b90610615910361014f565b90565b60001b90565b9061062b60001991610618565b9181191691161790565b9061064a6106456106519261029d565b6102b9565b825461061e565b9055565b634e487b7160e01b600052601160045260246000fd5b61067a6106809193929361014f565b9261014f565b820180921161068b57565b610655565b9061069b910161014f565b90565b91906106b2906000602085019401906105ca565b565b919091806106d36106cd6106c860006104b7565b6104c3565b916104c3565b146000146107b8576106f86106f1836106ec60026105bd565b61066b565b6002610635565b5b8261071561070f61070a60006104b7565b6104c3565b916104c3565b1460001461078b5761073a6107338361072e60026105bd565b61060a565b6002610635565b5b91909161078661077461076e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361057c565b9361057c565b9361077d610035565b9182918261069e565b0390a3565b6107b3826107ad61079e60008790610588565b916107a8836105bd565b610690565b90610635565b61073b565b6107cc6107c760008390610588565b6105bd565b806107df6107d98561014f565b9161014f565b10610808576107f261080391849061060a565b6107fe60008490610588565b610635565b6106f9565b90610827909192600093849363391434e360e21b8552600485016105d7565b0390fdfe60806040526004361015610013575b6104c6565b61001e6000356100ad565b806306fdde03146100a8578063095ea7b3146100a357806318160ddd1461009e57806323b872dd14610099578063313ce5671461009457806370a082311461008f57806395d89b411461008a578063a9059cbb146100855763dd62ed3e0361000e57610490565b61042c565b6103f7565b6103c2565b61036e565b61030f565b61029f565b610246565b610159565b60e01c90565b60405190565b600080fd5b600080fd5b60009103126100ce57565b6100be565b5190565b60209181520190565b60005b8381106100f4575050906000910152565b8060209183015181850152016100e3565b601f801991011690565b61012e61013760209361013c93610125816100d3565b938480936100d7565b958691016100e0565b610105565b0190565b610156916020820191600081840391015261010f565b90565b34610189576101693660046100c3565b61018561017461062d565b61017c6100b3565b91829182610140565b0390f35b6100b9565b60018060a01b031690565b6101a29061018e565b90565b6101ae81610199565b036101b557565b600080fd5b905035906101c7826101a5565b565b90565b6101d5816101c9565b036101dc57565b600080fd5b905035906101ee826101cc565b565b9190604083820312610219578061020d61021692600086016101ba565b936020016101e1565b90565b6100be565b151590565b61022c9061021e565b9052565b919061024490600060208501940190610223565b565b346102775761027361026261025c3660046101f0565b90610648565b61026a6100b3565b91829182610230565b0390f35b6100b9565b610285906101c9565b9052565b919061029d9060006020850194019061027c565b565b346102cf576102af3660046100c3565b6102cb6102ba610699565b6102c26100b3565b91829182610289565b0390f35b6100b9565b909160608284031261030a576103076102f084600085016101ba565b936102fe81602086016101ba565b936040016101e1565b90565b6100be565b346103405761033c61032b6103253660046102d4565b916106af565b6103336100b3565b91829182610230565b0390f35b6100b9565b60ff1690565b61035490610345565b9052565b919061036c9060006020850194019061034b565b565b3461039e5761037e3660046100c3565b61039a610389610705565b6103916100b3565b91829182610358565b0390f35b6100b9565b906020828203126103bd576103ba916000016101ba565b90565b6100be565b346103f2576103ee6103dd6103d83660046103a3565b610767565b6103e56100b3565b91829182610289565b0390f35b6100b9565b34610427576104073660046100c3565b610423610412610786565b61041a6100b3565b91829182610140565b0390f35b6100b9565b3461045d576104596104486104423660046101f0565b9061079c565b6104506100b3565b91829182610230565b0390f35b6100b9565b919060408382031261048b578061047f61048892600086016101ba565b936020016101ba565b90565b6100be565b346104c1576104bd6104ac6104a6366004610462565b906107d6565b6104b46100b3565b91829182610289565b0390f35b6100b9565b600080fd5b606090565b634e487b7160e01b600052602260045260246000fd5b9060016002830492168015610506575b602083101461050157565b6104d0565b91607f16916104f6565b60209181520190565b600052602060002090565b906000929180549061053f610538836104e6565b8094610510565b91600181169081600014610598575060011461055b575b505050565b6105689192939450610519565b916000925b8184106105805750500190388080610556565b6001816020929593955484860152019101929061056d565b92949550505060ff1916825215156020020190388080610556565b906105bd91610524565b90565b634e487b7160e01b600052604160045260246000fd5b906105e090610105565b810190811067ffffffffffffffff8211176105fa57604052565b6105c0565b9061061f6106189261060f6100b3565b938480926105b3565b03836105d6565b565b61062a906105ff565b90565b6106356104cb565b506106406003610621565b90565b600090565b61066591610654610643565b5061065d610803565b919091610810565b600190565b600090565b60001c90565b90565b6106846106899161066f565b610675565b90565b6106969054610678565b90565b6106a161066a565b506106ac600261068c565b90565b916106d9926106bc610643565b506106d16106c8610803565b8290849161086e565b91909161093e565b600190565b600090565b90565b90565b6106fd6106f8610702926106e3565b6106e6565b610345565b90565b61070d6106de565b5061071860126106e9565b90565b61072f61072a6107349261018e565b6106e6565b61018e565b90565b6107409061071b565b90565b61074c90610737565b90565b9061075990610743565b600052602052604060002090565b61077e6107839161077661066a565b50600061074f565b61068c565b90565b61078e6104cb565b506107996004610621565b90565b6107b9916107a8610643565b506107b1610803565b91909161093e565b600190565b906107c890610743565b600052602052604060002090565b6107fb916107f16107f6926107e961066a565b5060016107be565b61074f565b61068c565b90565b600090565b61080b6107fe565b503390565b9161081e9291600192610a3d565b565b61082990610199565b9052565b60409061085761085e949695939661084d60608401986000850190610820565b602083019061027c565b019061027c565b565b9061086b91036101c9565b90565b92919261087c8183906107d6565b908161089261088c6000196101c9565b916101c9565b0361089f575b5050509050565b816108b26108ac876101c9565b916101c9565b106108d9576108d093946108c7919392610860565b90600092610a3d565b80388080610898565b506108f9849291926000938493637dc7a0d960e11b85526004850161082d565b0390fd5b90565b61091461090f610919926108fd565b6106e6565b61018e565b90565b61092590610900565b90565b919061093c90600060208501940190610820565b565b918261095b610955610950600061091c565b610199565b91610199565b146109b8578161097c610976610971600061091c565b610199565b91610199565b1461098f5761098d92919091610b9b565b565b6109b461099c600061091c565b600091829163ec442f0560e01b835260048301610928565b0390fd5b6109dd6109c5600061091c565b6000918291634b637e8f60e11b835260048301610928565b0390fd5b60001b90565b906109f4600019916109e1565b9181191691161790565b610a12610a0d610a17926101c9565b6106e6565b6101c9565b90565b90565b90610a32610a2d610a39926109fe565b610a1a565b82546109e7565b9055565b909281610a5b610a55610a50600061091c565b610199565b91610199565b14610b295783610a7c610a76610a71600061091c565b610199565b91610199565b14610b0057610aa083610a9b610a94600186906107be565b879061074f565b610a1d565b610aaa575b505050565b919091610af5610ae3610add7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593610743565b93610743565b93610aec6100b3565b91829182610289565b0390a3388080610aa5565b610b25610b0d600061091c565b6000918291634a1406b160e11b835260048301610928565b0390fd5b610b4e610b36600061091c565b600091829163e602df0560e01b835260048301610928565b0390fd5b634e487b7160e01b600052601160045260246000fd5b610b77610b7d919392936101c9565b926101c9565b8201809211610b8857565b610b52565b90610b9891016101c9565b90565b91909180610bba610bb4610baf600061091c565b610199565b91610199565b14600014610c9f57610bdf610bd883610bd3600261068c565b610b68565b6002610a1d565b5b82610bfc610bf6610bf1600061091c565b610199565b91610199565b14600014610c7257610c21610c1a83610c15600261068c565b610860565b6002610a1d565b5b919091610c6d610c5b610c557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93610743565b93610743565b93610c646100b3565b91829182610289565b0390a3565b610c9a82610c94610c856000879061074f565b91610c8f8361068c565b610b8d565b90610a1d565b610c22565b610cb3610cae6000839061074f565b61068c565b80610cc6610cc0856101c9565b916101c9565b10610cef57610cd9610cea918490610860565b610ce56000849061074f565b610a1d565b610be0565b90610d0e909192600093849363391434e360e21b85526004850161082d565b0390fdfea2646970667358221220f28659cfa7a4916592a5b43fc99dd9d0060da09c4c8a8a1d6d54c0bb8d7c86ec64736f6c634300081b0033a26469706673582212200d668c00f0f21fca000d7667c647baa429890a77181cdc311db6f71cbf67db3b64736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e4a21265a46253573c0e5f50a8251ad3b5d1995e000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad380000000000000000000000009d05aa83959183ecd3576f1f6abfbb771daf0a63000000000000000000000000cd2d0637c94fe77c2896bbcbb174ceffb08de6d700000000000000000000000012e66c8f215ddd5d48d150c8f46ad0c6fb0f44060000000000000000000000000000000000000000000000000000000001e1338000000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2
-----Decoded View---------------
Arg [0] : taxCollector_ (address): 0xE4A21265A46253573c0e5F50a8251ad3B5d1995E
Arg [1] : weth_ (address): 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38
Arg [2] : locker_ (address): 0x9d05AA83959183ecd3576f1F6abFbB771daf0a63
Arg [3] : uniswapV3Factory_ (address): 0xcD2d0637c94fe77C2896BbCBB174cefFb08DE6d7
Arg [4] : positionManager_ (address): 0x12E66C8F215DdD5d48d150c8f46aD0c6fB0F4406
Arg [5] : defaultLockingPeriod_ (uint64): 31536000
Arg [6] : swapRouter_ (address): 0x92643Dc4F75C374b689774160CDea09A0704a9c2
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000e4a21265a46253573c0e5f50a8251ad3b5d1995e
Arg [1] : 000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad38
Arg [2] : 0000000000000000000000009d05aa83959183ecd3576f1f6abfbb771daf0a63
Arg [3] : 000000000000000000000000cd2d0637c94fe77c2896bbcbb174ceffb08de6d7
Arg [4] : 00000000000000000000000012e66c8f215ddd5d48d150c8f46ad0c6fb0f4406
Arg [5] : 0000000000000000000000000000000000000000000000000000000001e13380
Arg [6] : 00000000000000000000000092643dc4f75c374b689774160cdea09a0704a9c2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.