[ Download CSV Export ]
OVERVIEW
Soul is an algorithmic, cross-chain AMM and P2P lending protocol (on Fantom) built for traders, investors, developers, and visionaries seeking to unlock a universe of open financial applications.
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0xe5b0abe31d3dbadcb89996c3973057a7c2a37a19bdc41fecf18a8fbb177d6c6b | 20509986 | 515 days 16 hrs ago | Soul: Deployer | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
Enchantment
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2021-10-30 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @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); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ 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); } // File: @openzeppelin/contracts/utils/Context.sol pragma solidity ^0.8.0; /** * @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; } } // File: contracts/libraries/ERC20.sol pragma solidity ^0.8.7; /** * @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}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: @openzeppelin/contracts/security/ReentrancyGuard.sol pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File: @openzeppelin/contracts/access/Ownable.sol pragma solidity ^0.8.0; /** * @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. * * By default, the owner account will be the one that deploys the contract. 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/Enchantress.sol pragma solidity ^0.8.7; // enchantment allows you to ENCHANT your SEANCE at your will. // come in with some SEANCE, and leave with some more! // handles swapping to and from ENCHANT -- our dex reward token. contract Enchantment is ERC20("Enchantment", "ENCHANT"), Ownable, ReentrancyGuard { IERC20 public seance; bool isInitialized; event Enchant(address indexed user, uint amount); event Leave(address indexed user, uint share, uint amount); event NewSeance(IERC20 seance); // defines the SEANCE token contract. constructor(IERC20 _seance) { seance = _seance; } // initializes the contract to enable staking. function initialize() external onlyOwner { require(!isInitialized, 'already started'); isInitialized = true; } // locks SEANCE, mints ENCHANT. function enchant(uint amount) external nonReentrant { require(isInitialized, 'staking has not yet begun'); // gets the SEANCE locked in the contract. uint totalSeance = seance.balanceOf(address(this)); // gets total ENCHANT in existence. uint totalShares = totalSupply(); // if no ENCHANT exists, mint it 1:1 to the amount put in. if (totalShares == 0 || totalSeance == 0) { _mint(msg.sender, amount); } // calculate and mint the amount of ENCHANT the SEANCE is worth. // the ratio will change overtime, as ENCHANT is burned/minted and SEANCE // deposited + gained from fees / withdrawn. else { uint mintable = amount * totalShares / totalSeance; _mint(msg.sender, mintable); } // transfers the SEANCE to the contract. seance.transferFrom(msg.sender, address(this), amount); emit Enchant(msg.sender, amount); } // leaves the ENCHANT. reclaims SEANCE. // unlocks staked + gained SEANCE | burns ENCHANT. function leave(uint share) external nonReentrant { // gets the amount of ENCHANT in existence. uint totalShares = totalSupply(); // calculates the amount of SEANCE the ENCHANT is worth. uint amount = share * seance.balanceOf(address(this)) / totalShares; // burns the ENCHANT amount from the sender. _burn(msg.sender, share); // sends the SEANCE to the sender. seance.transfer(msg.sender, amount); emit Leave(msg.sender, share, amount); } function updateSeance(IERC20 _seance) public onlyOwner { seance = _seance; emit NewSeance(_seance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC20","name":"_seance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Enchant","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"share","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Leave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20","name":"seance","type":"address"}],"name":"NewSeance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"enchant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"share","type":"uint256"}],"name":"leave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seance","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_seance","type":"address"}],"name":"updateSeance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002c8838038062002c888339818101604052810190620000379190620002dc565b6040518060400160405280600b81526020017f456e6368616e746d656e740000000000000000000000000000000000000000008152506040518060400160405280600781526020017f454e4348414e54000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000215565b508060049080519060200190620000d492919062000215565b505050620000f7620000eb6200014760201b60201c565b6200014f60201b60201c565b600160068190555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620003da565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002239062000356565b90600052602060002090601f01602090048101928262000247576000855562000293565b82601f106200026257805160ff191683800117855562000293565b8280016001018555821562000293579182015b828111156200029257825182559160200191906001019062000275565b5b509050620002a29190620002a6565b5090565b5b80821115620002c1576000816000905550600101620002a7565b5090565b600081519050620002d681620003c0565b92915050565b600060208284031215620002f557620002f4620003bb565b5b60006200030584828501620002c5565b91505092915050565b60006200031b8262000336565b9050919050565b60006200032f826200030e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200036f57607f821691505b602082108114156200038657620003856200038c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003cb8162000322565b8114620003d757600080fd5b50565b61289e80620003ea6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb146102fa578063d96f8f5f1461032a578063dd62ed3e14610346578063f2fde38b14610376578063f72647d61461039257610121565b8063715018a61461027a5780638129fc1c146102845780638da5cb5b1461028e57806395d89b41146102ac578063a457c2d7146102ca57610121565b8063313ce567116100f4578063313ce567146101c257806339509351146101e05780634ca01d451461021057806367dfd4c91461022e57806370a082311461024a57610121565b806306fdde0314610126578063095ea7b31461014457806318160ddd1461017457806323b872dd14610192575b600080fd5b61012e6103ae565b60405161013b9190611ef2565b60405180910390f35b61015e60048036038101906101599190611abc565b610440565b60405161016b9190611ebc565b60405180910390f35b61017c61045e565b60405161018991906120f4565b60405180910390f35b6101ac60048036038101906101a79190611a69565b610468565b6040516101b99190611ebc565b60405180910390f35b6101ca610569565b6040516101d79190612138565b60405180910390f35b6101fa60048036038101906101f59190611abc565b610572565b6040516102079190611ebc565b60405180910390f35b61021861061e565b6040516102259190611ed7565b60405180910390f35b61024860048036038101906102439190611b56565b610644565b005b610264600480360381019061025f91906119fc565b61087a565b60405161027191906120f4565b60405180910390f35b6102826108c2565b005b61028c61094a565b005b610296610a33565b6040516102a39190611e41565b60405180910390f35b6102b4610a5d565b6040516102c19190611ef2565b60405180910390f35b6102e460048036038101906102df9190611abc565b610aef565b6040516102f19190611ebc565b60405180910390f35b610314600480360381019061030f9190611abc565b610be3565b6040516103219190611ebc565b60405180910390f35b610344600480360381019061033f9190611b56565b610c01565b005b610360600480360381019061035b9190611a29565b610eb0565b60405161036d91906120f4565b60405180910390f35b610390600480360381019061038b91906119fc565b610f37565b005b6103ac60048036038101906103a79190611b29565b61102f565b005b6060600380546103bd90612354565b80601f01602080910402602001604051908101604052809291908181526020018280546103e990612354565b80156104365780601f1061040b57610100808354040283529160200191610436565b820191906000526020600020905b81548152906001019060200180831161041957829003601f168201915b5050505050905090565b600061045461044d611126565b848461112e565b6001905092915050565b6000600254905090565b60006104758484846112f9565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c0611126565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053790611ff4565b60405180910390fd5b61055d8561054c611126565b85846105589190612250565b61112e565b60019150509392505050565b60006012905090565b600061061461057f611126565b84846001600061058d611126565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461060f919061216f565b61112e565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002600654141561068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190612094565b60405180910390fd5b6002600681905550600061069c61045e565b9050600081600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106fc9190611e41565b60206040518083038186803b15801561071457600080fd5b505afa158015610728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074c9190611b83565b8461075791906121f6565b61076191906121c5565b905061076d3384611583565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016107ca929190611e93565b602060405180830381600087803b1580156107e457600080fd5b505af11580156107f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081c9190611afc565b503373ffffffffffffffffffffffffffffffffffffffff167f0f0f7f8153c6d63a5696720d4cc434e56bb5ac1cf8c791ed9c180defb6e92153848360405161086592919061210f565b60405180910390a25050600160068190555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ca611126565b73ffffffffffffffffffffffffffffffffffffffff166108e8610a33565b73ffffffffffffffffffffffffffffffffffffffff161461093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093590612014565b60405180910390fd5b6109486000611763565b565b610952611126565b73ffffffffffffffffffffffffffffffffffffffff16610970610a33565b73ffffffffffffffffffffffffffffffffffffffff16146109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612014565b60405180910390fd5b600760149054906101000a900460ff1615610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d90611fd4565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a6c90612354565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9890612354565b8015610ae55780601f10610aba57610100808354040283529160200191610ae5565b820191906000526020600020905b815481529060010190602001808311610ac857829003601f168201915b5050505050905090565b60008060016000610afe611126565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb2906120b4565b60405180910390fd5b610bd8610bc6611126565b858584610bd39190612250565b61112e565b600191505092915050565b6000610bf7610bf0611126565b84846112f9565b6001905092915050565b60026006541415610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90612094565b60405180910390fd5b6002600681905550600760149054906101000a900460ff16610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590611f94565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cfb9190611e41565b60206040518083038186803b158015610d1357600080fd5b505afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190611b83565b90506000610d5761045e565b90506000811480610d685750600082145b15610d7c57610d773384611829565b610da3565b6000828285610d8b91906121f6565b610d9591906121c5565b9050610da13382611829565b505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401610e0293929190611e5c565b602060405180830381600087803b158015610e1c57600080fd5b505af1158015610e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e549190611afc565b503373ffffffffffffffffffffffffffffffffffffffff167fcc6363ecc4dffedf8e080ea3ce11de468b984f81c21d8f07c5bb2bebb680d4b984604051610e9b91906120f4565b60405180910390a25050600160068190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f3f611126565b73ffffffffffffffffffffffffffffffffffffffff16610f5d610a33565b73ffffffffffffffffffffffffffffffffffffffff1614610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90612014565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90611f54565b60405180910390fd5b61102c81611763565b50565b611037611126565b73ffffffffffffffffffffffffffffffffffffffff16611055610a33565b73ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a290612014565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5b3dc79f217c3b46d1cf2a686dd9ff06b1a8b6686b8ef3e002ec445a4893b4af8160405161111b9190611ed7565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561119e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119590612074565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590611f74565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ec91906120f4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090612054565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090611f14565b60405180910390fd5b6113e4838383611989565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561146a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146190611fb4565b60405180910390fd5b81816114769190612250565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611506919061216f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161156a91906120f4565b60405180910390a361157d84848461198e565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea90612034565b60405180910390fd5b6115ff82600083611989565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167c90611f34565b60405180910390fd5b81816116919190612250565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546116e59190612250565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161174a91906120f4565b60405180910390a361175e8360008461198e565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906120d4565b60405180910390fd5b6118a560008383611989565b80600260008282546118b7919061216f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190c919061216f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161197191906120f4565b60405180910390a36119856000838361198e565b5050565b505050565b505050565b6000813590506119a28161280c565b92915050565b6000815190506119b781612823565b92915050565b6000813590506119cc8161283a565b92915050565b6000813590506119e181612851565b92915050565b6000815190506119f681612851565b92915050565b600060208284031215611a1257611a11612413565b5b6000611a2084828501611993565b91505092915050565b60008060408385031215611a4057611a3f612413565b5b6000611a4e85828601611993565b9250506020611a5f85828601611993565b9150509250929050565b600080600060608486031215611a8257611a81612413565b5b6000611a9086828701611993565b9350506020611aa186828701611993565b9250506040611ab2868287016119d2565b9150509250925092565b60008060408385031215611ad357611ad2612413565b5b6000611ae185828601611993565b9250506020611af2858286016119d2565b9150509250929050565b600060208284031215611b1257611b11612413565b5b6000611b20848285016119a8565b91505092915050565b600060208284031215611b3f57611b3e612413565b5b6000611b4d848285016119bd565b91505092915050565b600060208284031215611b6c57611b6b612413565b5b6000611b7a848285016119d2565b91505092915050565b600060208284031215611b9957611b98612413565b5b6000611ba7848285016119e7565b91505092915050565b611bb981612284565b82525050565b611bc881612296565b82525050565b611bd7816122eb565b82525050565b6000611be882612153565b611bf2818561215e565b9350611c02818560208601612321565b611c0b81612418565b840191505092915050565b6000611c2360238361215e565b9150611c2e82612429565b604082019050919050565b6000611c4660228361215e565b9150611c5182612478565b604082019050919050565b6000611c6960268361215e565b9150611c74826124c7565b604082019050919050565b6000611c8c60228361215e565b9150611c9782612516565b604082019050919050565b6000611caf60198361215e565b9150611cba82612565565b602082019050919050565b6000611cd260268361215e565b9150611cdd8261258e565b604082019050919050565b6000611cf5600f8361215e565b9150611d00826125dd565b602082019050919050565b6000611d1860288361215e565b9150611d2382612606565b604082019050919050565b6000611d3b60208361215e565b9150611d4682612655565b602082019050919050565b6000611d5e60218361215e565b9150611d698261267e565b604082019050919050565b6000611d8160258361215e565b9150611d8c826126cd565b604082019050919050565b6000611da460248361215e565b9150611daf8261271c565b604082019050919050565b6000611dc7601f8361215e565b9150611dd28261276b565b602082019050919050565b6000611dea60258361215e565b9150611df582612794565b604082019050919050565b6000611e0d601f8361215e565b9150611e18826127e3565b602082019050919050565b611e2c816122d4565b82525050565b611e3b816122de565b82525050565b6000602082019050611e566000830184611bb0565b92915050565b6000606082019050611e716000830186611bb0565b611e7e6020830185611bb0565b611e8b6040830184611e23565b949350505050565b6000604082019050611ea86000830185611bb0565b611eb56020830184611e23565b9392505050565b6000602082019050611ed16000830184611bbf565b92915050565b6000602082019050611eec6000830184611bce565b92915050565b60006020820190508181036000830152611f0c8184611bdd565b905092915050565b60006020820190508181036000830152611f2d81611c16565b9050919050565b60006020820190508181036000830152611f4d81611c39565b9050919050565b60006020820190508181036000830152611f6d81611c5c565b9050919050565b60006020820190508181036000830152611f8d81611c7f565b9050919050565b60006020820190508181036000830152611fad81611ca2565b9050919050565b60006020820190508181036000830152611fcd81611cc5565b9050919050565b60006020820190508181036000830152611fed81611ce8565b9050919050565b6000602082019050818103600083015261200d81611d0b565b9050919050565b6000602082019050818103600083015261202d81611d2e565b9050919050565b6000602082019050818103600083015261204d81611d51565b9050919050565b6000602082019050818103600083015261206d81611d74565b9050919050565b6000602082019050818103600083015261208d81611d97565b9050919050565b600060208201905081810360008301526120ad81611dba565b9050919050565b600060208201905081810360008301526120cd81611ddd565b9050919050565b600060208201905081810360008301526120ed81611e00565b9050919050565b60006020820190506121096000830184611e23565b92915050565b60006040820190506121246000830185611e23565b6121316020830184611e23565b9392505050565b600060208201905061214d6000830184611e32565b92915050565b600081519050919050565b600082825260208201905092915050565b600061217a826122d4565b9150612185836122d4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156121ba576121b9612386565b5b828201905092915050565b60006121d0826122d4565b91506121db836122d4565b9250826121eb576121ea6123b5565b5b828204905092915050565b6000612201826122d4565b915061220c836122d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561224557612244612386565b5b828202905092915050565b600061225b826122d4565b9150612266836122d4565b92508282101561227957612278612386565b5b828203905092915050565b600061228f826122b4565b9050919050565b60008115159050919050565b60006122ad82612284565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006122f6826122fd565b9050919050565b60006123088261230f565b9050919050565b600061231a826122b4565b9050919050565b60005b8381101561233f578082015181840152602081019050612324565b8381111561234e576000848401525b50505050565b6000600282049050600182168061236c57607f821691505b602082108114156123805761237f6123e4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f7374616b696e6720686173206e6f742079657420626567756e00000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f616c726561647920737461727465640000000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61281581612284565b811461282057600080fd5b50565b61282c81612296565b811461283757600080fd5b50565b612843816122a2565b811461284e57600080fd5b50565b61285a816122d4565b811461286557600080fd5b5056fea264697066735822122049019b9072165652f04f82dd80c68e33009b98bc087136d77180390863da6fd964736f6c63430008070033000000000000000000000000124b06c5ce47de7a6e9efda71a946717130079e6
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000124b06c5ce47de7a6e9efda71a946717130079e6
-----Decoded View---------------
Arg [0] : _seance (address): 0x124b06c5ce47de7a6e9efda71a946717130079e6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000124b06c5ce47de7a6e9efda71a946717130079e6
Deployed ByteCode Sourcemap
21439:2447:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8557:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7510:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9208:466;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7352:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10083:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21528:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23215:532;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7681:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20558:94;;;:::i;:::-;;21903:133;;;:::i;:::-;;19907:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10801:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8021:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22081:1025;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8259:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20807:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23755:126;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6390:100;6444:13;6477:5;6470:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:100;:::o;8557:169::-;8640:4;8657:39;8666:12;:10;:12::i;:::-;8680:7;8689:6;8657:8;:39::i;:::-;8714:4;8707:11;;8557:169;;;;:::o;7510:108::-;7571:7;7598:12;;7591:19;;7510:108;:::o;9208:466::-;9348:4;9365:36;9375:6;9383:9;9394:6;9365:9;:36::i;:::-;9414:24;9441:11;:19;9453:6;9441:19;;;;;;;;;;;;;;;:33;9461:12;:10;:12::i;:::-;9441:33;;;;;;;;;;;;;;;;9414:60;;9513:6;9493:16;:26;;9485:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9575:57;9584:6;9592:12;:10;:12::i;:::-;9625:6;9606:16;:25;;;;:::i;:::-;9575:8;:57::i;:::-;9662:4;9655:11;;;9208:466;;;;;:::o;7352:93::-;7410:5;7435:2;7428:9;;7352:93;:::o;10083:215::-;10171:4;10188:80;10197:12;:10;:12::i;:::-;10211:7;10257:10;10220:11;:25;10232:12;:10;:12::i;:::-;10220:25;;;;;;;;;;;;;;;:34;10246:7;10220:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10188:8;:80::i;:::-;10286:4;10279:11;;10083:215;;;;:::o;21528:20::-;;;;;;;;;;;;;:::o;23215:532::-;17970:1;18566:7;;:19;;18558:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;17970:1;18699:7;:18;;;;23328:16:::1;23347:13;:11;:13::i;:::-;23328:32;;23439:11;23495;23461:6;;;;;;;;;;;:16;;;23486:4;23461:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23453:5;:39;;;;:::i;:::-;:53;;;;:::i;:::-;23439:67;;23573:24;23579:10;23591:5;23573;:24::i;:::-;23654:6;;;;;;;;;;;:15;;;23670:10;23682:6;23654:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23713:10;23707:32;;;23725:5;23732:6;23707:32;;;;;;;:::i;:::-;;;;;;;;23264:483;;17926:1:::0;18878:7;:22;;;;23215:532;:::o;7681:127::-;7755:7;7782:9;:18;7792:7;7782:18;;;;;;;;;;;;;;;;7775:25;;7681:127;;;:::o;20558:94::-;20138:12;:10;:12::i;:::-;20127:23;;:7;:5;:7::i;:::-;:23;;;20119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20623:21:::1;20641:1;20623:9;:21::i;:::-;20558:94::o:0;21903:133::-;20138:12;:10;:12::i;:::-;20127:23;;:7;:5;:7::i;:::-;:23;;;20119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21964:13:::1;;;;;;;;;;;21963:14;21955:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;22024:4;22008:13;;:20;;;;;;;;;;;;;;;;;;21903:133::o:0;19907:87::-;19953:7;19980:6;;;;;;;;;;;19973:13;;19907:87;:::o;6609:104::-;6665:13;6698:7;6691:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6609:104;:::o;10801:377::-;10894:4;10911:24;10938:11;:25;10950:12;:10;:12::i;:::-;10938:25;;;;;;;;;;;;;;;:34;10964:7;10938:34;;;;;;;;;;;;;;;;10911:61;;11011:15;10991:16;:35;;10983:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11079:67;11088:12;:10;:12::i;:::-;11102:7;11130:15;11111:16;:34;;;;:::i;:::-;11079:8;:67::i;:::-;11166:4;11159:11;;;10801:377;;;;:::o;8021:175::-;8107:4;8124:42;8134:12;:10;:12::i;:::-;8148:9;8159:6;8124:9;:42::i;:::-;8184:4;8177:11;;8021:175;;;;:::o;22081:1025::-;17970:1;18566:7;;:19;;18558:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;17970:1;18699:7;:18;;;;22152:13:::1;;;;;;;;;;;22144:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;22260:16;22279:6;;;;;;;;;;;:16;;;22304:4;22279:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22260:50;;22366:16;22385:13;:11;:13::i;:::-;22366:32;;22498:1;22483:11;:16;:36;;;;22518:1;22503:11;:16;22483:36;22479:456;;;22536:25;22542:10;22554:6;22536:5;:25::i;:::-;22479:456;;;22827:13;22866:11;22852;22843:6;:20;;;;:::i;:::-;:34;;;;:::i;:::-;22827:50;;22892:27;22898:10;22910:8;22892:5;:27::i;:::-;22812:123;22479:456;22997:6;;;;;;;;;;;:19;;;23017:10;23037:4;23044:6;22997:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23077:10;23069:27;;;23089:6;23069:27;;;;;;:::i;:::-;;;;;;;;22133:973;;17926:1:::0;18878:7;:22;;;;22081:1025;:::o;8259:151::-;8348:7;8375:11;:18;8387:5;8375:18;;;;;;;;;;;;;;;:27;8394:7;8375:27;;;;;;;;;;;;;;;;8368:34;;8259:151;;;;:::o;20807:192::-;20138:12;:10;:12::i;:::-;20127:23;;:7;:5;:7::i;:::-;:23;;;20119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20916:1:::1;20896:22;;:8;:22;;;;20888:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20972:19;20982:8;20972:9;:19::i;:::-;20807:192:::0;:::o;23755:126::-;20138:12;:10;:12::i;:::-;20127:23;;:7;:5;:7::i;:::-;:23;;;20119:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23830:7:::1;23821:6;;:16;;;;;;;;;;;;;;;;;;23855:18;23865:7;23855:18;;;;;;:::i;:::-;;;;;;;;23755:126:::0;:::o;4140:98::-;4193:7;4220:10;4213:17;;4140:98;:::o;14387:380::-;14540:1;14523:19;;:5;:19;;;;14515:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14621:1;14602:21;;:7;:21;;;;14594:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14705:6;14675:11;:18;14687:5;14675:18;;;;;;;;;;;;;;;:27;14694:7;14675:27;;;;;;;;;;;;;;;:36;;;;14743:7;14727:32;;14736:5;14727:32;;;14752:6;14727:32;;;;;;:::i;:::-;;;;;;;;14387:380;;;:::o;11668:697::-;11826:1;11808:20;;:6;:20;;;;11800:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11910:1;11889:23;;:9;:23;;;;11881:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11965:47;11986:6;11994:9;12005:6;11965:20;:47::i;:::-;12025:21;12049:9;:17;12059:6;12049:17;;;;;;;;;;;;;;;;12025:41;;12102:6;12085:13;:23;;12077:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12198:6;12182:13;:22;;;;:::i;:::-;12162:9;:17;12172:6;12162:17;;;;;;;;;;;;;;;:42;;;;12239:6;12215:9;:20;12225:9;12215:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12280:9;12263:35;;12272:6;12263:35;;;12291:6;12263:35;;;;;;:::i;:::-;;;;;;;;12311:46;12331:6;12339:9;12350:6;12311:19;:46::i;:::-;11789:576;11668:697;;;:::o;13384:565::-;13487:1;13468:21;;:7;:21;;;;13460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13540:49;13561:7;13578:1;13582:6;13540:20;:49::i;:::-;13602:22;13627:9;:18;13637:7;13627:18;;;;;;;;;;;;;;;;13602:43;;13682:6;13664:14;:24;;13656:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13776:6;13759:14;:23;;;;:::i;:::-;13738:9;:18;13748:7;13738:18;;;;;;;;;;;;;;;:44;;;;13819:6;13803:12;;:22;;;;;;;:::i;:::-;;;;;;;;13869:1;13843:37;;13852:7;13843:37;;;13873:6;13843:37;;;;;;:::i;:::-;;;;;;;;13893:48;13913:7;13930:1;13934:6;13893:19;:48::i;:::-;13449:500;13384:565;;:::o;21007:173::-;21063:16;21082:6;;;;;;;;;;;21063:25;;21108:8;21099:6;;:17;;;;;;;;;;;;;;;;;;21163:8;21132:40;;21153:8;21132:40;;;;;;;;;;;;21052:128;21007:173;:::o;12652:399::-;12755:1;12736:21;;:7;:21;;;;12728:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12806:49;12835:1;12839:7;12848:6;12806:20;:49::i;:::-;12884:6;12868:12;;:22;;;;;;;:::i;:::-;;;;;;;;12923:6;12901:9;:18;12911:7;12901:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;12966:7;12945:37;;12962:1;12945:37;;;12975:6;12945:37;;;;;;:::i;:::-;;;;;;;;12995:48;13023:1;13027:7;13036:6;12995:19;:48::i;:::-;12652:399;;:::o;15367:125::-;;;;:::o;16096:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:137::-;206:5;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;152:137;;;;:::o;295:165::-;354:5;392:6;379:20;370:29;;408:46;448:5;408:46;:::i;:::-;295:165;;;;:::o;466:139::-;512:5;550:6;537:20;528:29;;566:33;593:5;566:33;:::i;:::-;466:139;;;;:::o;611:143::-;668:5;699:6;693:13;684:22;;715:33;742:5;715:33;:::i;:::-;611:143;;;;:::o;760:329::-;819:6;868:2;856:9;847:7;843:23;839:32;836:119;;;874:79;;:::i;:::-;836:119;994:1;1019:53;1064:7;1055:6;1044:9;1040:22;1019:53;:::i;:::-;1009:63;;965:117;760:329;;;;:::o;1095:474::-;1163:6;1171;1220:2;1208:9;1199:7;1195:23;1191:32;1188:119;;;1226:79;;:::i;:::-;1188:119;1346:1;1371:53;1416:7;1407:6;1396:9;1392:22;1371:53;:::i;:::-;1361:63;;1317:117;1473:2;1499:53;1544:7;1535:6;1524:9;1520:22;1499:53;:::i;:::-;1489:63;;1444:118;1095:474;;;;;:::o;1575:619::-;1652:6;1660;1668;1717:2;1705:9;1696:7;1692:23;1688:32;1685:119;;;1723:79;;:::i;:::-;1685:119;1843:1;1868:53;1913:7;1904:6;1893:9;1889:22;1868:53;:::i;:::-;1858:63;;1814:117;1970:2;1996:53;2041:7;2032:6;2021:9;2017:22;1996:53;:::i;:::-;1986:63;;1941:118;2098:2;2124:53;2169:7;2160:6;2149:9;2145:22;2124:53;:::i;:::-;2114:63;;2069:118;1575:619;;;;;:::o;2200:474::-;2268:6;2276;2325:2;2313:9;2304:7;2300:23;2296:32;2293:119;;;2331:79;;:::i;:::-;2293:119;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2578:2;2604:53;2649:7;2640:6;2629:9;2625:22;2604:53;:::i;:::-;2594:63;;2549:118;2200:474;;;;;:::o;2680:345::-;2747:6;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:61;3000:7;2991:6;2980:9;2976:22;2947:61;:::i;:::-;2937:71;;2893:125;2680:345;;;;:::o;3031:355::-;3103:6;3152:2;3140:9;3131:7;3127:23;3123:32;3120:119;;;3158:79;;:::i;:::-;3120:119;3278:1;3303:66;3361:7;3352:6;3341:9;3337:22;3303:66;:::i;:::-;3293:76;;3249:130;3031:355;;;;:::o;3392:329::-;3451:6;3500:2;3488:9;3479:7;3475:23;3471:32;3468:119;;;3506:79;;:::i;:::-;3468:119;3626:1;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3597:117;3392:329;;;;:::o;3727:351::-;3797:6;3846:2;3834:9;3825:7;3821:23;3817:32;3814:119;;;3852:79;;:::i;:::-;3814:119;3972:1;3997:64;4053:7;4044:6;4033:9;4029:22;3997:64;:::i;:::-;3987:74;;3943:128;3727:351;;;;:::o;4084:118::-;4171:24;4189:5;4171:24;:::i;:::-;4166:3;4159:37;4084:118;;:::o;4208:109::-;4289:21;4304:5;4289:21;:::i;:::-;4284:3;4277:34;4208:109;;:::o;4323:157::-;4423:50;4467:5;4423:50;:::i;:::-;4418:3;4411:63;4323:157;;:::o;4486:364::-;4574:3;4602:39;4635:5;4602:39;:::i;:::-;4657:71;4721:6;4716:3;4657:71;:::i;:::-;4650:78;;4737:52;4782:6;4777:3;4770:4;4763:5;4759:16;4737:52;:::i;:::-;4814:29;4836:6;4814:29;:::i;:::-;4809:3;4805:39;4798:46;;4578:272;4486:364;;;;:::o;4856:366::-;4998:3;5019:67;5083:2;5078:3;5019:67;:::i;:::-;5012:74;;5095:93;5184:3;5095:93;:::i;:::-;5213:2;5208:3;5204:12;5197:19;;4856:366;;;:::o;5228:::-;5370:3;5391:67;5455:2;5450:3;5391:67;:::i;:::-;5384:74;;5467:93;5556:3;5467:93;:::i;:::-;5585:2;5580:3;5576:12;5569:19;;5228:366;;;:::o;5600:::-;5742:3;5763:67;5827:2;5822:3;5763:67;:::i;:::-;5756:74;;5839:93;5928:3;5839:93;:::i;:::-;5957:2;5952:3;5948:12;5941:19;;5600:366;;;:::o;5972:::-;6114:3;6135:67;6199:2;6194:3;6135:67;:::i;:::-;6128:74;;6211:93;6300:3;6211:93;:::i;:::-;6329:2;6324:3;6320:12;6313:19;;5972:366;;;:::o;6344:::-;6486:3;6507:67;6571:2;6566:3;6507:67;:::i;:::-;6500:74;;6583:93;6672:3;6583:93;:::i;:::-;6701:2;6696:3;6692:12;6685:19;;6344:366;;;:::o;6716:::-;6858:3;6879:67;6943:2;6938:3;6879:67;:::i;:::-;6872:74;;6955:93;7044:3;6955:93;:::i;:::-;7073:2;7068:3;7064:12;7057:19;;6716:366;;;:::o;7088:::-;7230:3;7251:67;7315:2;7310:3;7251:67;:::i;:::-;7244:74;;7327:93;7416:3;7327:93;:::i;:::-;7445:2;7440:3;7436:12;7429:19;;7088:366;;;:::o;7460:::-;7602:3;7623:67;7687:2;7682:3;7623:67;:::i;:::-;7616:74;;7699:93;7788:3;7699:93;:::i;:::-;7817:2;7812:3;7808:12;7801:19;;7460:366;;;:::o;7832:::-;7974:3;7995:67;8059:2;8054:3;7995:67;:::i;:::-;7988:74;;8071:93;8160:3;8071:93;:::i;:::-;8189:2;8184:3;8180:12;8173:19;;7832:366;;;:::o;8204:::-;8346:3;8367:67;8431:2;8426:3;8367:67;:::i;:::-;8360:74;;8443:93;8532:3;8443:93;:::i;:::-;8561:2;8556:3;8552:12;8545:19;;8204:366;;;:::o;8576:::-;8718:3;8739:67;8803:2;8798:3;8739:67;:::i;:::-;8732:74;;8815:93;8904:3;8815:93;:::i;:::-;8933:2;8928:3;8924:12;8917:19;;8576:366;;;:::o;8948:::-;9090:3;9111:67;9175:2;9170:3;9111:67;:::i;:::-;9104:74;;9187:93;9276:3;9187:93;:::i;:::-;9305:2;9300:3;9296:12;9289:19;;8948:366;;;:::o;9320:::-;9462:3;9483:67;9547:2;9542:3;9483:67;:::i;:::-;9476:74;;9559:93;9648:3;9559:93;:::i;:::-;9677:2;9672:3;9668:12;9661:19;;9320:366;;;:::o;9692:::-;9834:3;9855:67;9919:2;9914:3;9855:67;:::i;:::-;9848:74;;9931:93;10020:3;9931:93;:::i;:::-;10049:2;10044:3;10040:12;10033:19;;9692:366;;;:::o;10064:::-;10206:3;10227:67;10291:2;10286:3;10227:67;:::i;:::-;10220:74;;10303:93;10392:3;10303:93;:::i;:::-;10421:2;10416:3;10412:12;10405:19;;10064:366;;;:::o;10436:118::-;10523:24;10541:5;10523:24;:::i;:::-;10518:3;10511:37;10436:118;;:::o;10560:112::-;10643:22;10659:5;10643:22;:::i;:::-;10638:3;10631:35;10560:112;;:::o;10678:222::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10678:222;;;;:::o;10906:442::-;11055:4;11093:2;11082:9;11078:18;11070:26;;11106:71;11174:1;11163:9;11159:17;11150:6;11106:71;:::i;:::-;11187:72;11255:2;11244:9;11240:18;11231:6;11187:72;:::i;:::-;11269;11337:2;11326:9;11322:18;11313:6;11269:72;:::i;:::-;10906:442;;;;;;:::o;11354:332::-;11475:4;11513:2;11502:9;11498:18;11490:26;;11526:71;11594:1;11583:9;11579:17;11570:6;11526:71;:::i;:::-;11607:72;11675:2;11664:9;11660:18;11651:6;11607:72;:::i;:::-;11354:332;;;;;:::o;11692:210::-;11779:4;11817:2;11806:9;11802:18;11794:26;;11830:65;11892:1;11881:9;11877:17;11868:6;11830:65;:::i;:::-;11692:210;;;;:::o;11908:248::-;12014:4;12052:2;12041:9;12037:18;12029:26;;12065:84;12146:1;12135:9;12131:17;12122:6;12065:84;:::i;:::-;11908:248;;;;:::o;12162:313::-;12275:4;12313:2;12302:9;12298:18;12290:26;;12362:9;12356:4;12352:20;12348:1;12337:9;12333:17;12326:47;12390:78;12463:4;12454:6;12390:78;:::i;:::-;12382:86;;12162:313;;;;:::o;12481:419::-;12647:4;12685:2;12674:9;12670:18;12662:26;;12734:9;12728:4;12724:20;12720:1;12709:9;12705:17;12698:47;12762:131;12888:4;12762:131;:::i;:::-;12754:139;;12481:419;;;:::o;12906:::-;13072:4;13110:2;13099:9;13095:18;13087:26;;13159:9;13153:4;13149:20;13145:1;13134:9;13130:17;13123:47;13187:131;13313:4;13187:131;:::i;:::-;13179:139;;12906:419;;;:::o;13331:::-;13497:4;13535:2;13524:9;13520:18;13512:26;;13584:9;13578:4;13574:20;13570:1;13559:9;13555:17;13548:47;13612:131;13738:4;13612:131;:::i;:::-;13604:139;;13331:419;;;:::o;13756:::-;13922:4;13960:2;13949:9;13945:18;13937:26;;14009:9;14003:4;13999:20;13995:1;13984:9;13980:17;13973:47;14037:131;14163:4;14037:131;:::i;:::-;14029:139;;13756:419;;;:::o;14181:::-;14347:4;14385:2;14374:9;14370:18;14362:26;;14434:9;14428:4;14424:20;14420:1;14409:9;14405:17;14398:47;14462:131;14588:4;14462:131;:::i;:::-;14454:139;;14181:419;;;:::o;14606:::-;14772:4;14810:2;14799:9;14795:18;14787:26;;14859:9;14853:4;14849:20;14845:1;14834:9;14830:17;14823:47;14887:131;15013:4;14887:131;:::i;:::-;14879:139;;14606:419;;;:::o;15031:::-;15197:4;15235:2;15224:9;15220:18;15212:26;;15284:9;15278:4;15274:20;15270:1;15259:9;15255:17;15248:47;15312:131;15438:4;15312:131;:::i;:::-;15304:139;;15031:419;;;:::o;15456:::-;15622:4;15660:2;15649:9;15645:18;15637:26;;15709:9;15703:4;15699:20;15695:1;15684:9;15680:17;15673:47;15737:131;15863:4;15737:131;:::i;:::-;15729:139;;15456:419;;;:::o;15881:::-;16047:4;16085:2;16074:9;16070:18;16062:26;;16134:9;16128:4;16124:20;16120:1;16109:9;16105:17;16098:47;16162:131;16288:4;16162:131;:::i;:::-;16154:139;;15881:419;;;:::o;16306:::-;16472:4;16510:2;16499:9;16495:18;16487:26;;16559:9;16553:4;16549:20;16545:1;16534:9;16530:17;16523:47;16587:131;16713:4;16587:131;:::i;:::-;16579:139;;16306:419;;;:::o;16731:::-;16897:4;16935:2;16924:9;16920:18;16912:26;;16984:9;16978:4;16974:20;16970:1;16959:9;16955:17;16948:47;17012:131;17138:4;17012:131;:::i;:::-;17004:139;;16731:419;;;:::o;17156:::-;17322:4;17360:2;17349:9;17345:18;17337:26;;17409:9;17403:4;17399:20;17395:1;17384:9;17380:17;17373:47;17437:131;17563:4;17437:131;:::i;:::-;17429:139;;17156:419;;;:::o;17581:::-;17747:4;17785:2;17774:9;17770:18;17762:26;;17834:9;17828:4;17824:20;17820:1;17809:9;17805:17;17798:47;17862:131;17988:4;17862:131;:::i;:::-;17854:139;;17581:419;;;:::o;18006:::-;18172:4;18210:2;18199:9;18195:18;18187:26;;18259:9;18253:4;18249:20;18245:1;18234:9;18230:17;18223:47;18287:131;18413:4;18287:131;:::i;:::-;18279:139;;18006:419;;;:::o;18431:::-;18597:4;18635:2;18624:9;18620:18;18612:26;;18684:9;18678:4;18674:20;18670:1;18659:9;18655:17;18648:47;18712:131;18838:4;18712:131;:::i;:::-;18704:139;;18431:419;;;:::o;18856:222::-;18949:4;18987:2;18976:9;18972:18;18964:26;;19000:71;19068:1;19057:9;19053:17;19044:6;19000:71;:::i;:::-;18856:222;;;;:::o;19084:332::-;19205:4;19243:2;19232:9;19228:18;19220:26;;19256:71;19324:1;19313:9;19309:17;19300:6;19256:71;:::i;:::-;19337:72;19405:2;19394:9;19390:18;19381:6;19337:72;:::i;:::-;19084:332;;;;;:::o;19422:214::-;19511:4;19549:2;19538:9;19534:18;19526:26;;19562:67;19626:1;19615:9;19611:17;19602:6;19562:67;:::i;:::-;19422:214;;;;:::o;19723:99::-;19775:6;19809:5;19803:12;19793:22;;19723:99;;;:::o;19828:169::-;19912:11;19946:6;19941:3;19934:19;19986:4;19981:3;19977:14;19962:29;;19828:169;;;;:::o;20003:305::-;20043:3;20062:20;20080:1;20062:20;:::i;:::-;20057:25;;20096:20;20114:1;20096:20;:::i;:::-;20091:25;;20250:1;20182:66;20178:74;20175:1;20172:81;20169:107;;;20256:18;;:::i;:::-;20169:107;20300:1;20297;20293:9;20286:16;;20003:305;;;;:::o;20314:185::-;20354:1;20371:20;20389:1;20371:20;:::i;:::-;20366:25;;20405:20;20423:1;20405:20;:::i;:::-;20400:25;;20444:1;20434:35;;20449:18;;:::i;:::-;20434:35;20491:1;20488;20484:9;20479:14;;20314:185;;;;:::o;20505:348::-;20545:7;20568:20;20586:1;20568:20;:::i;:::-;20563:25;;20602:20;20620:1;20602:20;:::i;:::-;20597:25;;20790:1;20722:66;20718:74;20715:1;20712:81;20707:1;20700:9;20693:17;20689:105;20686:131;;;20797:18;;:::i;:::-;20686:131;20845:1;20842;20838:9;20827:20;;20505:348;;;;:::o;20859:191::-;20899:4;20919:20;20937:1;20919:20;:::i;:::-;20914:25;;20953:20;20971:1;20953:20;:::i;:::-;20948:25;;20992:1;20989;20986:8;20983:34;;;20997:18;;:::i;:::-;20983:34;21042:1;21039;21035:9;21027:17;;20859:191;;;;:::o;21056:96::-;21093:7;21122:24;21140:5;21122:24;:::i;:::-;21111:35;;21056:96;;;:::o;21158:90::-;21192:7;21235:5;21228:13;21221:21;21210:32;;21158:90;;;:::o;21254:109::-;21304:7;21333:24;21351:5;21333:24;:::i;:::-;21322:35;;21254:109;;;:::o;21369:126::-;21406:7;21446:42;21439:5;21435:54;21424:65;;21369:126;;;:::o;21501:77::-;21538:7;21567:5;21556:16;;21501:77;;;:::o;21584:86::-;21619:7;21659:4;21652:5;21648:16;21637:27;;21584:86;;;:::o;21676:139::-;21739:9;21772:37;21803:5;21772:37;:::i;:::-;21759:50;;21676:139;;;:::o;21821:126::-;21871:9;21904:37;21935:5;21904:37;:::i;:::-;21891:50;;21821:126;;;:::o;21953:113::-;22003:9;22036:24;22054:5;22036:24;:::i;:::-;22023:37;;21953:113;;;:::o;22072:307::-;22140:1;22150:113;22164:6;22161:1;22158:13;22150:113;;;22249:1;22244:3;22240:11;22234:18;22230:1;22225:3;22221:11;22214:39;22186:2;22183:1;22179:10;22174:15;;22150:113;;;22281:6;22278:1;22275:13;22272:101;;;22361:1;22352:6;22347:3;22343:16;22336:27;22272:101;22121:258;22072:307;;;:::o;22385:320::-;22429:6;22466:1;22460:4;22456:12;22446:22;;22513:1;22507:4;22503:12;22534:18;22524:81;;22590:4;22582:6;22578:17;22568:27;;22524:81;22652:2;22644:6;22641:14;22621:18;22618:38;22615:84;;;22671:18;;:::i;:::-;22615:84;22436:269;22385:320;;;:::o;22711:180::-;22759:77;22756:1;22749:88;22856:4;22853:1;22846:15;22880:4;22877:1;22870:15;22897:180;22945:77;22942:1;22935:88;23042:4;23039:1;23032:15;23066:4;23063:1;23056:15;23083:180;23131:77;23128:1;23121:88;23228:4;23225:1;23218:15;23252:4;23249:1;23242:15;23392:117;23501:1;23498;23491:12;23515:102;23556:6;23607:2;23603:7;23598:2;23591:5;23587:14;23583:28;23573:38;;23515:102;;;:::o;23623:222::-;23763:34;23759:1;23751:6;23747:14;23740:58;23832:5;23827:2;23819:6;23815:15;23808:30;23623:222;:::o;23851:221::-;23991:34;23987:1;23979:6;23975:14;23968:58;24060:4;24055:2;24047:6;24043:15;24036:29;23851:221;:::o;24078:225::-;24218:34;24214:1;24206:6;24202:14;24195:58;24287:8;24282:2;24274:6;24270:15;24263:33;24078:225;:::o;24309:221::-;24449:34;24445:1;24437:6;24433:14;24426:58;24518:4;24513:2;24505:6;24501:15;24494:29;24309:221;:::o;24536:175::-;24676:27;24672:1;24664:6;24660:14;24653:51;24536:175;:::o;24717:225::-;24857:34;24853:1;24845:6;24841:14;24834:58;24926:8;24921:2;24913:6;24909:15;24902:33;24717:225;:::o;24948:165::-;25088:17;25084:1;25076:6;25072:14;25065:41;24948:165;:::o;25119:227::-;25259:34;25255:1;25247:6;25243:14;25236:58;25328:10;25323:2;25315:6;25311:15;25304:35;25119:227;:::o;25352:182::-;25492:34;25488:1;25480:6;25476:14;25469:58;25352:182;:::o;25540:220::-;25680:34;25676:1;25668:6;25664:14;25657:58;25749:3;25744:2;25736:6;25732:15;25725:28;25540:220;:::o;25766:224::-;25906:34;25902:1;25894:6;25890:14;25883:58;25975:7;25970:2;25962:6;25958:15;25951:32;25766:224;:::o;25996:223::-;26136:34;26132:1;26124:6;26120:14;26113:58;26205:6;26200:2;26192:6;26188:15;26181:31;25996:223;:::o;26225:181::-;26365:33;26361:1;26353:6;26349:14;26342:57;26225:181;:::o;26412:224::-;26552:34;26548:1;26540:6;26536:14;26529:58;26621:7;26616:2;26608:6;26604:15;26597:32;26412:224;:::o;26642:181::-;26782:33;26778:1;26770:6;26766:14;26759:57;26642:181;:::o;26829:122::-;26902:24;26920:5;26902:24;:::i;:::-;26895:5;26892:35;26882:63;;26941:1;26938;26931:12;26882:63;26829:122;:::o;26957:116::-;27027:21;27042:5;27027:21;:::i;:::-;27020:5;27017:32;27007:60;;27063:1;27060;27053:12;27007:60;26957:116;:::o;27079:148::-;27165:37;27196:5;27165:37;:::i;:::-;27158:5;27155:48;27145:76;;27217:1;27214;27207:12;27145:76;27079:148;:::o;27233:122::-;27306:24;27324:5;27306:24;:::i;:::-;27299:5;27296:35;27286:63;;27345:1;27342;27335:12;27286:63;27233:122;:::o
Swarm Source
ipfs://49019b9072165652f04f82dd80c68e33009b98bc087136d77180390863da6fd9
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.