Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 11550240 | 1435 days ago | IN | 0 ETH | 0.00172557 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ProphecyTOKEN
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-07 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; contract ProphecyStorage { /** WARNING: NEVER RE-ORDER VARIABLES! * Always double-check that new variables are added APPEND-ONLY. * Re-ordering variables can permanently BREAK the deployed proxy contract. */ bool public initialized; mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; mapping(address => bool) public blacklist; uint256 internal _totalSupply; string public constant name = "ProphecyTOKEN"; string public constant symbol = "PRY"; uint256 public baretax; uint8 public constant decimals = 18; address public admin; uint256 internal constant deci = 1e18; bool internal getpause; } // File: contracts/Proxiable.sol pragma solidity ^0.6.0; contract Proxiable { // Code position in storage is keccak256("PROXIABLE") = "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7" function updateCodeAddress(address newAddress) internal { require( bytes32( 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7 ) == Proxiable(newAddress).proxiableUUID(), "Not compatible" ); assembly { // solium-disable-line sstore( 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, newAddress ) } } function proxiableUUID() public pure returns (bytes32) { return 0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7; } } // File: contracts/Prophecy.sol /** *Submitted for verification at USDerscan.io on 2020-10-09 */ pragma solidity ^0.6.0; 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 whUSDer 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 whUSDer the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this mUSDod 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/USDereum/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 whUSDer 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 ); } contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor() internal {} function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/USDereum/solidity/issues/2691 return msg.data; } } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract LibraryLock is ProphecyStorage { // Ensures no one can manipulate the Logic Contract once it is deployed. // PARITY WALLET HACK PREVENTION modifier delegatedOnly() { require( initialized == true, "The library is locked. No direct 'call' is allowed." ); _; } function initialize() internal { initialized = true; } } contract ProphecyTOKEN is ProphecyStorage, Context, IERC20, Proxiable, LibraryLock { using SafeMath for uint256; event ChangeBaretax(uint256 baretax); event AdminChanged(address admin); event CodeUpdated(address indexed newCode); function initialize(uint256 _totalsupply) public { require(!initialized, "The library has already been initialized."); LibraryLock.initialize(); admin = msg.sender; baretax = 1 * deci; _totalSupply = _totalsupply; _balances[msg.sender] = _totalSupply; } /// @dev Update the logic contract code function updateCode(address newCode) external onlyAdmin delegatedOnly { updateCodeAddress(newCode); emit CodeUpdated(newCode); } function setBaretax(uint256 _baretax) external onlyAdmin() ispaused() { require( _baretax < baretax, "the baretax should be greater than previous baretax" ); baretax = _baretax; emit ChangeBaretax(baretax); } function totalSupply() public override view returns (uint256) { return _totalSupply.mul(baretax).div(deci); } function setTotalSupply(uint256 inputTotalsupply) external onlyAdmin() { require( inputTotalsupply < totalSupply(), "the input total supply is not greater than present total supply" ); baretax = (inputTotalsupply.mul(deci)).div(_totalSupply); emit ChangeBaretax(baretax); } function balanceOf(address account) public override view returns (uint256) { uint256 externalAmt; externalAmt = _balances[account].mul(baretax).div(deci); return externalAmt; } function transfer(address recipient, uint256 amount) public virtual override Notblacklist(msg.sender) Notblacklist(recipient) ispaused() returns (bool) { uint256 internalAmt; uint256 externalAmt = amount; internalAmt = (amount.mul(deci)).div(baretax); _transfer(msg.sender, recipient, externalAmt); return true; } function allowance(address owner, address spender) public virtual override view returns (uint256) { uint256 internalAmt; internalAmt = (_allowances[owner][spender]).mul(baretax).div(deci); return internalAmt; } function approve(address spender, uint256 amount) public virtual override Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { uint256 internalAmt; uint256 externalAmt = amount; internalAmt = externalAmt.mul(deci).div(baretax); _approve(msg.sender, spender, externalAmt); 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 Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { uint256 externalAmt = allowance(_msgSender(),spender) ; _approve(_msgSender(), spender, externalAmt.add(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 Notblacklist(spender) Notblacklist(msg.sender) ispaused() returns (bool) { uint256 externalAmt = allowance(_msgSender(),spender) ; _approve(_msgSender(), spender, externalAmt.sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override Notblacklist(sender) Notblacklist(msg.sender) Notblacklist(recipient) ispaused() returns (bool) { uint256 externalAmt = allowance(sender,_msgSender()); _transfer(sender, recipient, amount); _approve( sender, _msgSender(), externalAmt.sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _transfer( address sender, address recipient, uint256 externalAmt ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 internalAmt = externalAmt.mul(deci).div(baretax); _balances[sender] = _balances[sender].sub( internalAmt, "ERC20: transfer internalAmt exceeds balance" ); _balances[recipient] = _balances[recipient].add(internalAmt); emit Transfer(sender, recipient, externalAmt); } function burn(address burnFrom, uint256 amount) public virtual onlyAdmin() ispaused() returns (bool) { uint256 internalAmt; uint256 externalAmt = amount; internalAmt = externalAmt.mul(deci).div(baretax); _burn(burnFrom, internalAmt, externalAmt); return true; } function _burn( address account, uint256 internalAmt, uint256 externalAmt ) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub( internalAmt, "ERC20: burn internaAmt exceeds balance" ); _totalSupply = _totalSupply.sub(internalAmt); emit Transfer(account, address(0), externalAmt); } function _approve( address owner, address spender, uint256 externalAmt ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); uint256 internalAmt = externalAmt.mul(deci).div(baretax); _allowances[owner][spender] = internalAmt; emit Approval(owner, spender,externalAmt); } function TransferOwnerShip(address account) public onlyAdmin() { require(account != address(0), "account cannot be zero address"); require(msg.sender == admin, "you are not the admin"); admin = account; emit AdminChanged(admin); } function pause() external onlyAdmin() { getpause = true; } function unpause() external onlyAdmin() { getpause = false; } // pause unpause modifier ispaused() { require(getpause == false, "the contract is paused"); _; } modifier onlyAdmin() { require(msg.sender == admin, "you are not the admin"); _; } modifier Notblacklist(address account) { require(!blacklist[account], "account is blacklisted"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"AdminChanged","type":"event"},{"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":false,"internalType":"uint256","name":"baretax","type":"uint256"}],"name":"ChangeBaretax","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newCode","type":"address"}],"name":"CodeUpdated","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":"account","type":"address"}],"name":"TransferOwnerShip","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"baretax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"burnFrom","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalsupply","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baretax","type":"uint256"}],"name":"setBaretax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"inputTotalsupply","type":"uint256"}],"name":"setTotalSupply","outputs":[],"stateMutability":"nonpayable","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":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newCode","type":"address"}],"name":"updateCode","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061312b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638456cb59116100c3578063b1eb34681161007c578063b1eb346814610654578063dd62ed3e14610698578063f7ea7a3d14610710578063f851a4401461073e578063f9f92be414610772578063fe4b84df146107cc57610158565b80638456cb591461046d57806395d89b41146104775780639dc29fac146104fa578063a2de0b941461055e578063a457c2d71461058c578063a9059cbb146105f057610158565b8063395093511161011557806339509351146103275780633f4ba83a1461038b578063469519541461039557806352d1902d146103d957806358bf8840146103f757806370a082311461041557610158565b806306fdde031461015d578063095ea7b3146101e0578063158ef93e1461024457806318160ddd1461026457806323b872dd14610282578063313ce56714610306575b600080fd5b6101656107fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610833565b60405180821515815260200191505060405180910390f35b61024c610a90565b60405180821515815260200191505060405180910390f35b61026c610aa1565b6040518082815260200191505060405180910390f35b6102ee6004803603606081101561029857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad9565b60405180821515815260200191505060405180910390f35b61030e610e14565b604051808260ff16815260200191505060405180910390f35b6103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e19565b60405180821515815260200191505060405180910390f35b61039361106c565b005b6103d7600480360360208110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114c565b005b6103e16112c8565b6040518082815260200191505060405180910390f35b6103ff6112f3565b6040518082815260200191505060405180910390f35b6104576004803603602081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f9565b6040518082815260200191505060405180910390f35b610475611375565b005b61047f611455565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104bf5780820151818401526020810190506104a4565b50505050905090810190601f1680156104ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105466004803603604081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061148e565b60405180821515815260200191505060405180910390f35b61058a6004803603602081101561057457600080fd5b810190808035906020019092919050505061162a565b005b6105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611813565b60405180821515815260200191505060405180910390f35b61063c6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a80565b60405180821515815260200191505060405180910390f35b6106966004803603602081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cdd565b005b6106fa600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb9565b6040518082815260200191505060405180910390f35b61073c6004803603602081101561072657600080fd5b8101908080359060200190929190505050612073565b005b610746612206565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061222c565b60405180821515815260200191505060405180910390f35b6107f8600480360360208110156107e257600080fd5b810190808035906020019092919050505061224c565b005b6040518060400160405280600d81526020017f50726f7068656379544f4b454e0000000000000000000000000000000000000081525081565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610a40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080859050610a75600554610a67670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b9150610a8233888361242b565b600194505050505092915050565b60008054906101000a900460ff1681565b6000610ad4670de0b6b3a7640000610ac660055460045461235b90919063ffffffff16565b6123e190919063ffffffff16565b905090565b600083600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b84600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000610dba88610db5612656565b611fb9565b9050610dc788888861265e565b610e0588610dd3612656565b610e0089604051806060016040528060288152602001612f9a602891398661294c9092919063ffffffff16565b61242b565b60019450505050509392505050565b601281565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611026576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611039611033612656565b87611fb9565b905061105f611046612656565b8761105a8885612a0c90919063ffffffff16565b61242b565b6001935050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001151560008054906101000a900460ff16151514611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061303b6033913960400191505060405180910390fd5b61128281612a94565b8073ffffffffffffffffffffffffffffffffffffffff167f34459cf4c63f38e9b4af4ff8f74035bad6157484e669ffde70188afdf9917c6860405160405180910390a250565b60007fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b905090565b60055481565b60008061136a670de0b6b3a764000061135c600554600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235b90919063ffffffff16565b6123e190919063ffffffff16565b905080915050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b6040518060400160405280600381526020017f505259000000000000000000000000000000000000000000000000000000000081525081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080839050611611600554611603670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b915061161e858383612bd2565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b60055481106117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806130086033913960400191505060405180910390fd5b806005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611a20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611a33611a2d612656565b87611fb9565b9050611a73611a40612656565b87611a6e886040518060600160405280602581526020016130d1602591398661294c9092919063ffffffff16565b61242b565b6001935050505092915050565b600033600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b83600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080859050611cc2600554611cb4670de0b6b3a76400008961235b90919063ffffffff16565b6123e190919063ffffffff16565b9150611ccf33888361265e565b600194505050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6163636f756e742063616e6e6f74206265207a65726f2061646472657373000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080612067670de0b6b3a7640000612059600554600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235b90919063ffffffff16565b6123e190919063ffffffff16565b90508091505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b61213e610aa1565b8110612195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613092603f913960400191505060405180910390fd5b6121c46004546121b6670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b6005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900460ff16156122b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612f506029913960400191505060405180910390fd5b6122b8612d8d565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060010260058190555080600481905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008083141561236e57600090506123db565b600082840290508284828161237f57fe5b04146123d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612f796021913960400191505060405180910390fd5b809150505b92915050565b600061242383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612da9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061306e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612537576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f086022913960400191505060405180910390fd5b600061256860055461255a670de0b6b3a76400008561235b90919063ffffffff16565b6123e190919063ffffffff16565b905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a350505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fe36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612eba6023913960400191505060405180910390fd5b600061279b60055461278d670de0b6b3a76400008561235b90919063ffffffff16565b6123e190919063ffffffff16565b9050612809816040518060600160405280602b8152602001612edd602b9139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289e81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129be5780820151818401526020810190506129a3565b50505050905090810190601f1680156129eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ada57600080fd5b505afa158015612aee573d6000803e3d6000fd5b505050506040513d6020811015612b0457600080fd5b81019080805190602001909291905050507fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b14612bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420636f6d70617469626c6500000000000000000000000000000000000081525060200191505060405180910390fd5b807fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf75550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fc26021913960400191505060405180910390fd5b612cc482604051806060016040528060268152602001612f2a60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1c82600454612e6f90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60016000806101000a81548160ff021916908315150217905550565b60008083118290612e55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e1a578082015181840152602081019050612dff565b50505050905090810190601f168015612e475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612e6157fe5b049050809150509392505050565b6000612eb183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061294c565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a207472616e7366657220696e7465726e616c416d7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20696e7465726e61416d7420657863656564732062616c616e6365546865206c6962726172792068617320616c7265616479206265656e20696e697469616c697a65642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737374686520626172657461782073686f756c642062652067726561746572207468616e2070726576696f75732062617265746178546865206c696272617279206973206c6f636b65642e204e6f20646972656374202763616c6c2720697320616c6c6f7765642e45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737374686520696e70757420746f74616c20737570706c79206973206e6f742067726561746572207468616e2070726573656e7420746f74616c20737570706c7945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd309f3d4ba670be974d7804f3f6e061a585ec277bd041c3255579ae559c7d4e64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638456cb59116100c3578063b1eb34681161007c578063b1eb346814610654578063dd62ed3e14610698578063f7ea7a3d14610710578063f851a4401461073e578063f9f92be414610772578063fe4b84df146107cc57610158565b80638456cb591461046d57806395d89b41146104775780639dc29fac146104fa578063a2de0b941461055e578063a457c2d71461058c578063a9059cbb146105f057610158565b8063395093511161011557806339509351146103275780633f4ba83a1461038b578063469519541461039557806352d1902d146103d957806358bf8840146103f757806370a082311461041557610158565b806306fdde031461015d578063095ea7b3146101e0578063158ef93e1461024457806318160ddd1461026457806323b872dd14610282578063313ce56714610306575b600080fd5b6101656107fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61022c600480360360408110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610833565b60405180821515815260200191505060405180910390f35b61024c610a90565b60405180821515815260200191505060405180910390f35b61026c610aa1565b6040518082815260200191505060405180910390f35b6102ee6004803603606081101561029857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad9565b60405180821515815260200191505060405180910390f35b61030e610e14565b604051808260ff16815260200191505060405180910390f35b6103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e19565b60405180821515815260200191505060405180910390f35b61039361106c565b005b6103d7600480360360208110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061114c565b005b6103e16112c8565b6040518082815260200191505060405180910390f35b6103ff6112f3565b6040518082815260200191505060405180910390f35b6104576004803603602081101561042b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f9565b6040518082815260200191505060405180910390f35b610475611375565b005b61047f611455565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104bf5780820151818401526020810190506104a4565b50505050905090810190601f1680156104ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105466004803603604081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061148e565b60405180821515815260200191505060405180910390f35b61058a6004803603602081101561057457600080fd5b810190808035906020019092919050505061162a565b005b6105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611813565b60405180821515815260200191505060405180910390f35b61063c6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a80565b60405180821515815260200191505060405180910390f35b6106966004803603602081101561066a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cdd565b005b6106fa600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb9565b6040518082815260200191505060405180910390f35b61073c6004803603602081101561072657600080fd5b8101908080359060200190929190505050612073565b005b610746612206565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061222c565b60405180821515815260200191505060405180910390f35b6107f8600480360360208110156107e257600080fd5b810190808035906020019092919050505061224c565b005b6040518060400160405280600d81526020017f50726f7068656379544f4b454e0000000000000000000000000000000000000081525081565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610a40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080859050610a75600554610a67670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b9150610a8233888361242b565b600194505050505092915050565b60008054906101000a900460ff1681565b6000610ad4670de0b6b3a7640000610ac660055460045461235b90919063ffffffff16565b6123e190919063ffffffff16565b905090565b600083600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b84600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514610da7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000610dba88610db5612656565b611fb9565b9050610dc788888861265e565b610e0588610dd3612656565b610e0089604051806060016040528060288152602001612f9a602891398661294c9092919063ffffffff16565b61242b565b60019450505050509392505050565b601281565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611026576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611039611033612656565b87611fb9565b905061105f611046612656565b8761105a8885612a0c90919063ffffffff16565b61242b565b6001935050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6000600660146101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001151560008054906101000a900460ff16151514611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061303b6033913960400191505060405180910390fd5b61128281612a94565b8073ffffffffffffffffffffffffffffffffffffffff167f34459cf4c63f38e9b4af4ff8f74035bad6157484e669ffde70188afdf9917c6860405160405180910390a250565b60007fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b905090565b60055481565b60008061136a670de0b6b3a764000061135c600554600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235b90919063ffffffff16565b6123e190919063ffffffff16565b905080915050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b6001600660146101000a81548160ff021916908315150217905550565b6040518060400160405280600381526020017f505259000000000000000000000000000000000000000000000000000000000081525081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff161515146115dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080839050611611600554611603670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b915061161e858383612bd2565b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611776576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b60055481106117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806130086033913960400191505060405180910390fd5b806005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600082600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b33600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611997576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611a20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b6000611a33611a2d612656565b87611fb9565b9050611a73611a40612656565b87611a6e886040518060600160405280602581526020016130d1602591398661294c9092919063ffffffff16565b61242b565b6001935050505092915050565b600033600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611b43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b83600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f6163636f756e7420697320626c61636b6c69737465640000000000000000000081525060200191505060405180910390fd5b60001515600660149054906101000a900460ff16151514611c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f74686520636f6e7472616374206973207061757365640000000000000000000081525060200191505060405180910390fd5b600080859050611cc2600554611cb4670de0b6b3a76400008961235b90919063ffffffff16565b6123e190919063ffffffff16565b9150611ccf33888361265e565b600194505050505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611da0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6163636f756e742063616e6e6f74206265207a65726f2061646472657373000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080612067670de0b6b3a7640000612059600554600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235b90919063ffffffff16565b6123e190919063ffffffff16565b90508091505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f796f7520617265206e6f74207468652061646d696e000000000000000000000081525060200191505060405180910390fd5b61213e610aa1565b8110612195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613092603f913960400191505060405180910390fd5b6121c46004546121b6670de0b6b3a76400008461235b90919063ffffffff16565b6123e190919063ffffffff16565b6005819055507f5076e731927e1cd865725074412b9e7d98f50f160e135c51bebbda8cb735fe8a6005546040518082815260200191505060405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900460ff16156122b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180612f506029913960400191505060405180910390fd5b6122b8612d8d565b33600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060010260058190555080600481905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60008083141561236e57600090506123db565b600082840290508284828161237f57fe5b04146123d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612f796021913960400191505060405180910390fd5b809150505b92915050565b600061242383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612da9565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061306e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612537576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f086022913960400191505060405180910390fd5b600061256860055461255a670de0b6b3a76400008561235b90919063ffffffff16565b6123e190919063ffffffff16565b905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a350505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612fe36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561276a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612eba6023913960400191505060405180910390fd5b600061279b60055461278d670de0b6b3a76400008561235b90919063ffffffff16565b6123e190919063ffffffff16565b9050612809816040518060600160405280602b8152602001612edd602b9139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289e81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0c90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60008383111582906129f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129be5780820151818401526020810190506129a3565b50505050905090810190601f1680156129eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612a8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ada57600080fd5b505afa158015612aee573d6000803e3d6000fd5b505050506040513d6020811015612b0457600080fd5b81019080805190602001909291905050507fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf760001b14612bac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4e6f7420636f6d70617469626c6500000000000000000000000000000000000081525060200191505060405180910390fd5b807fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf75550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fc26021913960400191505060405180910390fd5b612cc482604051806060016040528060268152602001612f2a60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461294c9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d1c82600454612e6f90919063ffffffff16565b600481905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60016000806101000a81548160ff021916908315150217905550565b60008083118290612e55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e1a578082015181840152602081019050612dff565b50505050905090810190601f168015612e475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612e6157fe5b049050809150509392505050565b6000612eb183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061294c565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a207472616e7366657220696e7465726e616c416d7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20696e7465726e61416d7420657863656564732062616c616e6365546865206c6962726172792068617320616c7265616479206265656e20696e697469616c697a65642e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737374686520626172657461782073686f756c642062652067726561746572207468616e2070726576696f75732062617265746178546865206c696272617279206973206c6f636b65642e204e6f20646972656374202763616c6c2720697320616c6c6f7765642e45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737374686520696e70757420746f74616c20737570706c79206973206e6f742067726561746572207468616e2070726573656e7420746f74616c20737570706c7945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd309f3d4ba670be974d7804f3f6e061a585ec277bd041c3255579ae559c7d4e64736f6c634300060c0033
Deployed Bytecode Sourcemap
10417:8080:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;555:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:426;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;303:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11515:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15054:652;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;680:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13794:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18039:75;;;:::i;:::-;;11041:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1557:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;651:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11994:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17959:72;;;:::i;:::-;;607:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16362:363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11200:307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14647:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12210:433;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17680:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12651:292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11646:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;722:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;467:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10676:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;555:45;;;;;;;;;;;;;;;;;;;:::o;12951:426::-;13155:4;13074:7;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13105:10:::1;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18197:5:::2;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;13177:19:::3;13207::::0;13229:6:::3;13207:28;;13260:34;13286:7;;13260:21;782:4;13260:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;13246:48;;13305:42;13314:10;13326:7;13335:11;13305:8;:42::i;:::-;13365:4;13358:11;;;;18485:1:::1;12951:426:::0;;;;;:::o;303:23::-;;;;;;;;;;;;:::o;11515:123::-;11568:7;11595:35;782:4;11595:25;11612:7;;11595:12;;:16;;:25;;;;:::i;:::-;:29;;:35;;;;:::i;:::-;11588:42;;11515:123;:::o;15054:652::-;15347:4;15234:6;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15264:10:::1;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15298:9:::2;18429;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;18197:5:::3;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;15369:19:::4;15391:30;15401:6;15408:12;:10;:12::i;:::-;15391:9;:30::i;:::-;15369:52;;15432:36;15442:6;15450:9;15461:6;15432:9;:36::i;:::-;15479:197;15502:6;15523:12;:10;:12::i;:::-;15549:116;15583:6;15549:116;;;;;;;;;;;;;;;;;:11;:15;;:116;;;;;:::i;:::-;15479:8;:197::i;:::-;15694:4;15687:11;;;18485:1:::2;::::1;15054:652:::0;;;;;;:::o;680:35::-;713:2;680:35;:::o;13794:350::-;13971:4;13888:7;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13919:10:::1;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18197:5:::2;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;13989:19:::3;14011:31;14021:12;:10;:12::i;:::-;14034:7;14011:9;:31::i;:::-;13989:53;;14054:60;14063:12;:10;:12::i;:::-;14077:7;14086:27;14102:10;14086:11;:15;;:27;;;;:::i;:::-;14054:8;:60::i;:::-;14132:4;14125:11;;;18485:1:::1;13794:350:::0;;;;;:::o;18039:75::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18101:5:::1;18090:8;;:16;;;;;;;;;;;;;;;;;;18039:75::o:0;11041:151::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10233:4:::1;10218:19;;:11;::::0;::::1;;;;;;;;:19;;;10196:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11122:26:::2;11140:7;11122:17;:26::i;:::-;11176:7;11164:20;;;;;;;;;;;;11041:151:::0;:::o;1557:160::-;1603:7;1643:66;1623:86;;;;1557:160;:::o;651:22::-;;;;:::o;11994:208::-;12060:7;12080:19;12124:41;782:4;12124:31;12147:7;;12124:9;:18;12134:7;12124:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;12110:55;;12183:11;12176:18;;;11994:208;;;:::o;17959:72::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18019:4:::1;18008:8;;:15;;;;;;;;;;;;;;;;;;17959:72::o:0;607:37::-;;;;;;;;;;;;;;;;;;;:::o;16362:363::-;16502:4;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18197:5:::1;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16524:19:::2;16554::::0;16576:6:::2;16554:28;;16607:34;16633:7;;16607:21;782:4;16607:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;16593:48;;16654:41;16660:8;16670:11;16683;16654:5;:41::i;:::-;16713:4;16706:11;;;;16362:363:::0;;;;:::o;11200:307::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18197:5:::1;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;11346:7:::2;;11335:8;:18;11313:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11453:8;11443:7;:18;;;;11477:22;11491:7;;11477:22;;;;;;;;;;;;;;;;;;11200:307:::0;:::o;14647:399::-;14828:4;14746:7;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14777:10:::1;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18197:5:::2;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;14845:19:::3;14867:31;14877:12;:10;:12::i;:::-;14890:7;14867:9;:31::i;:::-;14845:53;;14910:106;14919:12;:10;:12::i;:::-;14933:7;14942:73;14958:15;14942:73;;;;;;;;;;;;;;;;;:11;:15;;:73;;;;;:::i;:::-;14910:8;:106::i;:::-;15034:4;15027:11;;;18485:1:::1;14647:399:::0;;;;;:::o;12210:433::-;12419:4;12336:10;18429:9;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12370:9:::1;18429;:18;18439:7;18429:18;;;;;;;;;;;;;;;;;;;;;;;;;18428:19;18420:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18197:5:::2;18185:17;;:8;;;;;;;;;;;:17;;;18177:52;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12441:19:::3;12471::::0;12493:6:::3;12471:28;;12524:31;12547:7;;12525:16;782:4;12525:6;:10;;:16;;;;:::i;:::-;12524:22;;:31;;;;:::i;:::-;12510:45;;12568;12578:10;12590:9;12601:11;12568:9;:45::i;:::-;12631:4;12624:11;;;;18485:1:::1;12210:433:::0;;;;;:::o;17680:271::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17781:1:::1;17762:21;;:7;:21;;;;17754:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17851:5;;;;;;;;;;;17837:19;;:10;:19;;;17829:53;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17901:7;17893:5;;:15;;;;;;;;;;;;;;;;;;17924:19;17937:5;;;;;;;;;;;17924:19;;;;;;;;;;;;;;;;;;;;17680:271:::0;:::o;12651:292::-;12785:7;12810:19;12854:52;782:4;12854:42;12888:7;;12855:11;:18;12867:5;12855:18;;;;;;;;;;;;;;;:27;12874:7;12855:27;;;;;;;;;;;;;;;;12854:33;;:42;;;;:::i;:::-;:46;;:52;;;;:::i;:::-;12840:66;;12924:11;12917:18;;;12651:292;;;;:::o;11646:340::-;18311:5;;;;;;;;;;;18297:19;;:10;:19;;;18289:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11769:13:::1;:11;:13::i;:::-;11750:16;:32;11728:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11894:46;11927:12;;11895:26;782:4;11895:16;:20;;:26;;;;:::i;:::-;11894:32;;:46;;;;:::i;:::-;11884:7;:56;;;;11956:22;11970:7;;11956:22;;;;;;;;;;;;;;;;;;11646:340:::0;:::o;722:20::-;;;;;;;;;;;;;:::o;467:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10676:312::-;10745:11;;;;;;;;;;10744:12;10736:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10813:24;:22;:24::i;:::-;10856:10;10848:5;;:18;;;;;;;;;;;;;;;;;;782:4;10887:1;:8;10877:7;:18;;;;10921:12;10906;:27;;;;10968:12;;10944:9;:21;10954:10;10944:21;;;;;;;;;;;;;;;:36;;;;10676:312;:::o;6786:471::-;6844:7;7094:1;7089;:6;7085:47;;;7119:1;7112:8;;;;7085:47;7144:9;7160:1;7156;:5;7144:17;;7189:1;7184;7180;:5;;;;;;:10;7172:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7248:1;7241:8;;;6786:471;;;;;:::o;7725:132::-;7783:7;7810:39;7814:1;7817;7810:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7803:46;;7725:132;;;;:::o;17213:459::-;17371:1;17354:19;;:5;:19;;;;17346:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17452:1;17433:21;;:7;:21;;;;17425:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17504:19;17526:34;17552:7;;17526:21;782:4;17526:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;17504:56;;17601:11;17571;:18;17583:5;17571:18;;;;;;;;;;;;;;;:27;17590:7;17571:27;;;;;;;;;;;;;;;:41;;;;17644:7;17628:36;;17637:5;17628:36;;;17652:11;17628:36;;;;;;;;;;;;;;;;;;17213:459;;;;:::o;4829:98::-;4874:15;4909:10;4902:17;;4829:98;:::o;15714:640::-;15877:1;15859:20;;:6;:20;;;;15851:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15961:1;15940:23;;:9;:23;;;;15932:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16014:19;16036:34;16062:7;;16036:21;782:4;16036:11;:15;;:21;;;;:::i;:::-;:25;;:34;;;;:::i;:::-;16014:56;;16101:118;16137:11;16101:118;;;;;;;;;;;;;;;;;:9;:17;16111:6;16101:17;;;;;;;;;;;;;;;;:21;;:118;;;;;:::i;:::-;16081:9;:17;16091:6;16081:17;;;;;;;;;;;;;;;:138;;;;16253:37;16278:11;16253:9;:20;16263:9;16253:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;16230:9;:20;16240:9;16230:20;;;;;;;;;;;;;;;:60;;;;16323:9;16306:40;;16315:6;16306:40;;;16334:11;16306:40;;;;;;;;;;;;;;;;;;15714:640;;;;:::o;6309:226::-;6429:7;6462:1;6457;:6;;6465:12;6449:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6489:9;6505:1;6501;:5;6489:17;;6526:1;6519:8;;;6309:226;;;;;:::o;5422:181::-;5480:7;5500:9;5516:1;5512;:5;5500:17;;5541:1;5536;:6;;5528:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5594:1;5587:8;;;5422:181;;;;:::o;1046:503::-;1256:10;1246:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:66;1135:107;;:148;1113:212;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:10;1421:66;1396:135;1345:197;:::o;16733:472::-;16896:1;16877:21;;:7;:21;;;;16869:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16970:114;17007:11;16970:114;;;;;;;;;;;;;;;;;:9;:18;16980:7;16970:18;;;;;;;;;;;;;;;;:22;;:114;;;;;:::i;:::-;16949:9;:18;16959:7;16949:18;;;;;;;;;;;;;;;:135;;;;17110:29;17127:11;17110:12;;:16;;:29;;;;:::i;:::-;17095:12;:44;;;;17181:1;17155:42;;17164:7;17155:42;;;17185:11;17155:42;;;;;;;;;;;;;;;;;;16733:472;;;:::o;10342:68::-;10398:4;10384:11;;:18;;;;;;;;;;;;;;;;;;10342:68::o;8345:379::-;8465:7;8564:1;8560;:5;8567:12;8552:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8591:9;8607:1;8603;:5;;;;;;8591:17;;8715:1;8708:8;;;8345:379;;;;;:::o;5878:136::-;5936:7;5963:43;5967:1;5970;5963:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5956:50;;5878:136;;;;:::o
Swarm Source
ipfs://bd309f3d4ba670be974d7804f3f6e061a585ec277bd041c3255579ae559c7d4e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.