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
|
|||||
---|---|---|---|---|---|---|---|---|---|
Propose Owner | 18071195 | 558 days ago | IN | 0 ETH | 0.00093966 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BUSDImplementation
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-05 */ // File: contracts/zeppelin/SafeMath.sol pragma solidity 0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } } // File: contracts/BUSDImplementation.sol pragma solidity 0.4.24; pragma experimental "v0.5.0"; /** * @title BUSDImplementation * @dev this contract is a Pausable ERC20 token with Burn and Mint * controlled by a central SupplyController. By implementing BUSDImplementation * this contract also includes external methods for setting * a new implementation contract for the Proxy. * NOTE: The storage defined here will actually be held in the Proxy * contract and all calls to this contract should be made through * the proxy, including admin actions done as owner or supplyController. * Any call to transfer against this contract should fail * with insufficient funds since no tokens will be issued there. */ contract BUSDImplementation { /** * MATH */ using SafeMath for uint256; /** * DATA */ // INITIALIZATION DATA bool private initialized = false; // ERC20 BASIC DATA mapping(address => uint256) internal balances; uint256 internal totalSupply_; string public constant name = "BUSD"; // solium-disable-line string public constant symbol = "BUSD"; // solium-disable-line uppercase uint8 public constant decimals = 18; // solium-disable-line uppercase // ERC20 DATA mapping(address => mapping(address => uint256)) internal allowed; // OWNER DATA address public owner; address public proposedOwner; // PAUSABILITY DATA bool public paused = false; // ASSET PROTECTION DATA address public assetProtectionRole; mapping(address => bool) internal frozen; // SUPPLY CONTROL DATA address public supplyController; // DELEGATED TRANSFER DATA address public betaDelegateWhitelister; mapping(address => bool) internal betaDelegateWhitelist; mapping(address => uint256) internal nextSeqs; // EIP191 header for EIP712 prefix string constant internal EIP191_HEADER = "\x19\x01"; // Hash of the EIP712 Domain Separator Schema bytes32 constant internal EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH = keccak256( "EIP712Domain(string name,address verifyingContract)" ); bytes32 constant internal EIP712_DELEGATED_TRANSFER_SCHEMA_HASH = keccak256( "BetaDelegatedTransfer(address to,uint256 value,uint256 fee,uint256 seq,uint256 deadline)" ); // Hash of the EIP712 Domain Separator data // solhint-disable-next-line var-name-mixedcase bytes32 public EIP712_DOMAIN_HASH; /** * EVENTS */ // ERC20 BASIC EVENTS event Transfer(address indexed from, address indexed to, uint256 value); // ERC20 EVENTS event Approval( address indexed owner, address indexed spender, uint256 value ); // OWNABLE EVENTS event OwnershipTransferProposed( address indexed currentOwner, address indexed proposedOwner ); event OwnershipTransferDisregarded( address indexed oldProposedOwner ); event OwnershipTransferred( address indexed oldOwner, address indexed newOwner ); // PAUSABLE EVENTS event Pause(); event Unpause(); // ASSET PROTECTION EVENTS event AddressFrozen(address indexed addr); event AddressUnfrozen(address indexed addr); event FrozenAddressWiped(address indexed addr); event AssetProtectionRoleSet ( address indexed oldAssetProtectionRole, address indexed newAssetProtectionRole ); // SUPPLY CONTROL EVENTS event SupplyIncreased(address indexed to, uint256 value); event SupplyDecreased(address indexed from, uint256 value); event SupplyControllerSet( address indexed oldSupplyController, address indexed newSupplyController ); // DELEGATED TRANSFER EVENTS event BetaDelegatedTransfer( address indexed from, address indexed to, uint256 value, uint256 seq, uint256 fee ); event BetaDelegateWhitelisterSet( address indexed oldWhitelister, address indexed newWhitelister ); event BetaDelegateWhitelisted(address indexed newDelegate); event BetaDelegateUnwhitelisted(address indexed oldDelegate); /** * FUNCTIONALITY */ // INITIALIZATION FUNCTIONALITY /** * @dev sets 0 initials tokens, the owner, and the supplyController. * this serves as the constructor for the proxy but compiles to the * memory model of the Implementation contract. */ function initialize() public { require(!initialized, "already initialized"); owner = msg.sender; proposedOwner = address(0); assetProtectionRole = address(0); totalSupply_ = 0; supplyController = msg.sender; initialized = true; } /** * The constructor is used here to ensure that the implementation * contract is initialized. An uncontrolled implementation * contract might lead to misleading state * for users who accidentally interact with it. */ constructor() public { initialize(); pause(); // Added in V2 initializeDomainSeparator(); } /** * @dev To be called when upgrading the contract using upgradeAndCall to add delegated transfers */ function initializeDomainSeparator() public { // hash the name context with the contract address EIP712_DOMAIN_HASH = keccak256(abi.encodePacked(// solium-disable-line EIP712_DOMAIN_SEPARATOR_SCHEMA_HASH, keccak256(bytes(name)), bytes32(address(this)) )); } // ERC20 BASIC FUNCTIONALITY /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token to a specified address from msg.sender * Note: the use of Safemath ensures that _value is nonnegative. * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { require(_to != address(0), "cannot transfer to address zero"); require(!frozen[_to] && !frozen[msg.sender], "address frozen"); require(_value <= balances[msg.sender], "insufficient funds"); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _addr The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _addr) public view returns (uint256) { return balances[_addr]; } // ERC20 FUNCTIONALITY /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom( address _from, address _to, uint256 _value ) public whenNotPaused returns (bool) { require(_to != address(0), "cannot transfer to address zero"); require(!frozen[_to] && !frozen[_from] && !frozen[msg.sender], "address frozen"); require(_value <= balances[_from], "insufficient funds"); require(_value <= allowed[_from][msg.sender], "insufficient allowance"); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * 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 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { require(!frozen[_spender] && !frozen[msg.sender], "address frozen"); allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance( address _owner, address _spender ) public view returns (uint256) { return allowed[_owner][_spender]; } // OWNER FUNCTIONALITY /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner, "onlyOwner"); _; } /** * @dev Allows the current owner to begin transferring control of the contract to a proposedOwner * @param _proposedOwner The address to transfer ownership to. */ function proposeOwner(address _proposedOwner) public onlyOwner { require(_proposedOwner != address(0), "cannot transfer ownership to address zero"); require(msg.sender != _proposedOwner, "caller already is owner"); proposedOwner = _proposedOwner; emit OwnershipTransferProposed(owner, proposedOwner); } /** * @dev Allows the current owner or proposed owner to cancel transferring control of the contract to a proposedOwner */ function disregardProposeOwner() public { require(msg.sender == proposedOwner || msg.sender == owner, "only proposedOwner or owner"); require(proposedOwner != address(0), "can only disregard a proposed owner that was previously set"); address _oldProposedOwner = proposedOwner; proposedOwner = address(0); emit OwnershipTransferDisregarded(_oldProposedOwner); } /** * @dev Allows the proposed owner to complete transferring control of the contract to the proposedOwner. */ function claimOwnership() public { require(msg.sender == proposedOwner, "onlyProposedOwner"); address _oldOwner = owner; owner = proposedOwner; proposedOwner = address(0); emit OwnershipTransferred(_oldOwner, owner); } /** * @dev Reclaim all BUSD at the contract address. * This sends the BUSD tokens that this contract add holding to the owner. * Note: this is not affected by freeze constraints. */ function reclaimBUSD() external onlyOwner { uint256 _balance = balances[this]; balances[this] = 0; balances[owner] = balances[owner].add(_balance); emit Transfer(this, owner, _balance); } // PAUSABILITY FUNCTIONALITY /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused, "whenNotPaused"); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyOwner { require(!paused, "already paused"); paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner { require(paused, "already unpaused"); paused = false; emit Unpause(); } // ASSET PROTECTION FUNCTIONALITY /** * @dev Sets a new asset Protection role address. * @param _newAssetProtectionRole The new address allowed to freeze/unfreeze addresses and seize their tokens. */ function setAssetProtectionRole(address _newAssetProtectionRole) public { require(msg.sender == assetProtectionRole || msg.sender == owner, "only assetProtectionRole or Owner"); emit AssetProtectionRoleSet(assetProtectionRole, _newAssetProtectionRole); assetProtectionRole = _newAssetProtectionRole; } modifier onlyAssetProtectionRole() { require(msg.sender == assetProtectionRole, "onlyAssetProtectionRole"); _; } /** * @dev Freezes an address balance from being transferred. * @param _addr The new address to freeze. */ function freeze(address _addr) public onlyAssetProtectionRole { require(!frozen[_addr], "address already frozen"); frozen[_addr] = true; emit AddressFrozen(_addr); } /** * @dev Unfreezes an address balance allowing transfer. * @param _addr The new address to unfreeze. */ function unfreeze(address _addr) public onlyAssetProtectionRole { require(frozen[_addr], "address already unfrozen"); frozen[_addr] = false; emit AddressUnfrozen(_addr); } /** * @dev Wipes the balance of a frozen address, burning the tokens * and setting the approval to zero. * @param _addr The new frozen address to wipe. */ function wipeFrozenAddress(address _addr) public onlyAssetProtectionRole { require(frozen[_addr], "address is not frozen"); uint256 _balance = balances[_addr]; balances[_addr] = 0; totalSupply_ = totalSupply_.sub(_balance); emit FrozenAddressWiped(_addr); emit SupplyDecreased(_addr, _balance); emit Transfer(_addr, address(0), _balance); } /** * @dev Gets whether the address is currently frozen. * @param _addr The address to check if frozen. * @return A bool representing whether the given address is frozen. */ function isFrozen(address _addr) public view returns (bool) { return frozen[_addr]; } // SUPPLY CONTROL FUNCTIONALITY /** * @dev Sets a new supply controller address. * @param _newSupplyController The address allowed to burn/mint tokens to control supply. */ function setSupplyController(address _newSupplyController) public { require(msg.sender == supplyController || msg.sender == owner, "only SupplyController or Owner"); require(_newSupplyController != address(0), "cannot set supply controller to address zero"); emit SupplyControllerSet(supplyController, _newSupplyController); supplyController = _newSupplyController; } modifier onlySupplyController() { require(msg.sender == supplyController, "onlySupplyController"); _; } /** * @dev Increases the total supply by minting the specified number of tokens to the supply controller account. * @param _value The number of tokens to add. * @return A boolean that indicates if the operation was successful. */ function increaseSupply(uint256 _value) public onlySupplyController returns (bool success) { totalSupply_ = totalSupply_.add(_value); balances[supplyController] = balances[supplyController].add(_value); emit SupplyIncreased(supplyController, _value); emit Transfer(address(0), supplyController, _value); return true; } /** * @dev Decreases the total supply by burning the specified number of tokens from the supply controller account. * @param _value The number of tokens to remove. * @return A boolean that indicates if the operation was successful. */ function decreaseSupply(uint256 _value) public onlySupplyController returns (bool success) { require(_value <= balances[supplyController], "not enough supply"); balances[supplyController] = balances[supplyController].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit SupplyDecreased(supplyController, _value); emit Transfer(supplyController, address(0), _value); return true; } // DELEGATED TRANSFER FUNCTIONALITY /** * @dev returns the next seq for a target address. * The transactor must submit nextSeqOf(transactor) in the next transaction for it to be valid. * Note: that the seq context is specific to this smart contract. * @param target The target address. * @return the seq. */ // function nextSeqOf(address target) public view returns (uint256) { return nextSeqs[target]; } /** * @dev Performs a transfer on behalf of the from address, identified by its signature on the delegatedTransfer msg. * Splits a signature byte array into r,s,v for convenience. * @param sig the signature of the delgatedTransfer msg. * @param to The address to transfer to. * @param value The amount to be transferred. * @param fee an optional ERC20 fee paid to the executor of betaDelegatedTransfer by the from address. * @param seq a sequencing number included by the from address specific to this contract to protect from replays. * @param deadline a block number after which the pre-signed transaction has expired. * @return A boolean that indicates if the operation was successful. */ function betaDelegatedTransfer( bytes sig, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline ) public returns (bool) { require(sig.length == 65, "signature should have length 65"); bytes32 r; bytes32 s; uint8 v; assembly { r := mload(add(sig, 32)) s := mload(add(sig, 64)) v := byte(0, mload(add(sig, 96))) } require(_betaDelegatedTransfer(r, s, v, to, value, fee, seq, deadline), "failed transfer"); return true; } /** * @dev Performs a transfer on behalf of the from address, identified by its signature on the betaDelegatedTransfer msg. * Note: both the delegate and transactor sign in the fees. The transactor, however, * has no control over the gas price, and therefore no control over the transaction time. * Beta prefix chosen to avoid a name clash with an emerging standard in ERC865 or elsewhere. * Internal to the contract - see betaDelegatedTransfer and betaDelegatedTransferBatch. * @param r the r signature of the delgatedTransfer msg. * @param s the s signature of the delgatedTransfer msg. * @param v the v signature of the delgatedTransfer msg. * @param to The address to transfer to. * @param value The amount to be transferred. * @param fee an optional ERC20 fee paid to the delegate of betaDelegatedTransfer by the from address. * @param seq a sequencing number included by the from address specific to this contract to protect from replays. * @param deadline a block number after which the pre-signed transaction has expired. * @return A boolean that indicates if the operation was successful. */ function _betaDelegatedTransfer( bytes32 r, bytes32 s, uint8 v, address to, uint256 value, uint256 fee, uint256 seq, uint256 deadline ) internal whenNotPaused returns (bool) { require(betaDelegateWhitelist[msg.sender], "Beta feature only accepts whitelisted delegates"); require(value > 0 || fee > 0, "cannot transfer zero tokens with zero fee"); require(block.number <= deadline, "transaction expired"); // prevent sig malleability from ecrecover() require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "signature incorrect"); require(v == 27 || v == 28, "signature incorrect"); // EIP712 scheme: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md bytes32 delegatedTransferHash = keccak256(abi.encodePacked(// solium-disable-line EIP712_DELEGATED_TRANSFER_SCHEMA_HASH, bytes32(to), value, fee, seq, deadline )); bytes32 hash = keccak256(abi.encodePacked(EIP191_HEADER, EIP712_DOMAIN_HASH, delegatedTransferHash)); address _from = ecrecover(hash, v, r, s); require(_from != address(0), "error determining from address from signature"); require(to != address(0), "canno use address zero"); require(!frozen[to] && !frozen[_from] && !frozen[msg.sender], "address frozen"); require(value.add(fee) <= balances[_from], "insufficent fund"); require(nextSeqs[_from] == seq, "incorrect seq"); nextSeqs[_from] = nextSeqs[_from].add(1); balances[_from] = balances[_from].sub(value.add(fee)); if (fee != 0) { balances[msg.sender] = balances[msg.sender].add(fee); emit Transfer(_from, msg.sender, fee); } balances[to] = balances[to].add(value); emit Transfer(_from, to, value); emit BetaDelegatedTransfer(_from, to, value, seq, fee); return true; } /** * @dev Performs an atomic batch of transfers on behalf of the from addresses, identified by their signatures. * Lack of nested array support in arguments requires all arguments to be passed as equal size arrays where * delegated transfer number i is the combination of all arguments at index i * @param r the r signatures of the delgatedTransfer msg. * @param s the s signatures of the delgatedTransfer msg. * @param v the v signatures of the delgatedTransfer msg. * @param to The addresses to transfer to. * @param value The amounts to be transferred. * @param fee optional ERC20 fees paid to the delegate of betaDelegatedTransfer by the from address. * @param seq sequencing numbers included by the from address specific to this contract to protect from replays. * @param deadline block numbers after which the pre-signed transactions have expired. * @return A boolean that indicates if the operation was successful. */ function betaDelegatedTransferBatch( bytes32[] r, bytes32[] s, uint8[] v, address[] to, uint256[] value, uint256[] fee, uint256[] seq, uint256[] deadline ) public returns (bool) { require(r.length == s.length && r.length == v.length && r.length == to.length && r.length == value.length, "length mismatch"); require(r.length == fee.length && r.length == seq.length && r.length == deadline.length, "length mismatch"); for (uint i = 0; i < r.length; i++) { require( _betaDelegatedTransfer(r[i], s[i], v[i], to[i], value[i], fee[i], seq[i], deadline[i]), "failed transfer" ); } return true; } /** * @dev Gets whether the address is currently whitelisted for betaDelegateTransfer. * @param _addr The address to check if whitelisted. * @return A bool representing whether the given address is whitelisted. */ function isWhitelistedBetaDelegate(address _addr) public view returns (bool) { return betaDelegateWhitelist[_addr]; } /** * @dev Sets a new betaDelegate whitelister. * @param _newWhitelister The address allowed to whitelist betaDelegates. */ function setBetaDelegateWhitelister(address _newWhitelister) public { require(msg.sender == betaDelegateWhitelister || msg.sender == owner, "only Whitelister or Owner"); betaDelegateWhitelister = _newWhitelister; emit BetaDelegateWhitelisterSet(betaDelegateWhitelister, _newWhitelister); } modifier onlyBetaDelegateWhitelister() { require(msg.sender == betaDelegateWhitelister, "onlyBetaDelegateWhitelister"); _; } /** * @dev Whitelists an address to allow calling BetaDelegatedTransfer. * @param _addr The new address to whitelist. */ function whitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister { require(!betaDelegateWhitelist[_addr], "delegate already whitelisted"); betaDelegateWhitelist[_addr] = true; emit BetaDelegateWhitelisted(_addr); } /** * @dev Unwhitelists an address to disallow calling BetaDelegatedTransfer. * @param _addr The new address to whitelist. */ function unwhitelistBetaDelegate(address _addr) public onlyBetaDelegateWhitelister { require(betaDelegateWhitelist[_addr], "delegate not whitelisted"); betaDelegateWhitelist[_addr] = false; emit BetaDelegateUnwhitelisted(_addr); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"disregardProposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetProtectionRole","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"},{"name":"v","type":"uint8[]"},{"name":"to","type":"address[]"},{"name":"value","type":"uint256[]"},{"name":"fee","type":"uint256[]"},{"name":"seq","type":"uint256[]"},{"name":"deadline","type":"uint256[]"}],"name":"betaDelegatedTransferBatch","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sig","type":"bytes"},{"name":"to","type":"address"},{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"seq","type":"uint256"},{"name":"deadline","type":"uint256"}],"name":"betaDelegatedTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initializeDomainSeparator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newSupplyController","type":"address"}],"name":"setSupplyController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"}],"name":"nextSeqOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAssetProtectionRole","type":"address"}],"name":"setAssetProtectionRole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newWhitelister","type":"address"}],"name":"setBetaDelegateWhitelister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"decreaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isWhitelistedBetaDelegate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"whitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"proposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"increaseSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"betaDelegateWhitelister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"unwhitelistBetaDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"wipeFrozenAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_DOMAIN_HASH","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isFrozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimBUSD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentOwner","type":"address"},{"indexed":true,"name":"proposedOwner","type":"address"}],"name":"OwnershipTransferProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldProposedOwner","type":"address"}],"name":"OwnershipTransferDisregarded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"AddressUnfrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"}],"name":"FrozenAddressWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAssetProtectionRole","type":"address"},{"indexed":true,"name":"newAssetProtectionRole","type":"address"}],"name":"AssetProtectionRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"SupplyDecreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldSupplyController","type":"address"},{"indexed":true,"name":"newSupplyController","type":"address"}],"name":"SupplyControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"seq","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"}],"name":"BetaDelegatedTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldWhitelister","type":"address"},{"indexed":true,"name":"newWhitelister","type":"address"}],"name":"BetaDelegateWhitelisterSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newDelegate","type":"address"}],"name":"BetaDelegateWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldDelegate","type":"address"}],"name":"BetaDelegateUnwhitelisted","type":"event"}]
Contract Creation Code
60806040526000805460ff191690556005805460a060020a60ff02191690553480156200002b57600080fd5b506200003f6401000000006200006b810204565b6200005264010000000062000124810204565b620000656401000000006200027b810204565b620003ed565b60005460ff1615620000de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a031991821681179092556005805482169055600680548216905560006002819055600880549092169092179055805460ff19166001179055565b600454600160a060020a031633146200019e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c794f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60055474010000000000000000000000000000000000000000900460ff16156200022957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6005805460a060020a60ff021916740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e747261637429000000000000000000000000006020808301919091528251918290036033018220828401845260048084527f425553440000000000000000000000000000000000000000000000000000000092840192835293519093909182918083835b60208310620003355780518252601f19909201916020918201910162000314565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b60208310620003bc5780518252601f1990920191602091820191016200039b565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505050565b61331480620003fd6000396000f3006080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303acb44881146101e757806306fdde03146101fe578063095ea7b3146102885780630a91b601146102c057806318160ddd146102f15780631b6705611461031857806321ab11f7146104fc57806323b872dd146105755780632ff791611461059f578063313ce567146105b45780633f4ba83a146105df57806345c8b1a6146105f45780634e71e0c81461061557806352875bc31461062a5780635c975abb1461064b57806370a08231146106605780638129fc1c146106815780638456cb591461069657806389f72c21146106ab5780638ceed9cb146106cc5780638d1fdf2f146106ed5780638da5cb5b1461070e57806395d89b41146101fe57806397d60d561461072357806398e52f9a14610744578063a7d87ed01461075c578063a9059cbb1461077d578063ac69275c146107a1578063b5ed298a146107c2578063b921e163146107e3578063c4f62fee146107fb578063d153b60c14610810578063d990c61814610825578063dd62ed3e14610846578063e2f72f031461086d578063e306f7791461088e578063e5839836146108a3578063e7ba1012146108c4578063ebc93aaf146108d9575b600080fd5b3480156101f357600080fd5b506101fc6108ee565b005b34801561020a57600080fd5b50610213610a3f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102ac600160a060020a0360043516602435610a76565b604080519115158252519081900360200190f35b3480156102cc57600080fd5b506102d5610bad565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b50610306610bbc565b60408051918252519081900360200190f35b34801561032457600080fd5b50604080516020600480358082013583810280860185019096528085526102ac95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bc29650505050505050565b34801561050857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102ac94369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050602083013592604081013592506060810135915060800135610dff565b34801561058157600080fd5b506102ac600160a060020a0360043581169060243516604435610edb565b3480156105ab57600080fd5b506101fc611216565b3480156105c057600080fd5b506105c9611384565b6040805160ff9092168252519081900360200190f35b3480156105eb57600080fd5b506101fc611389565b34801561060057600080fd5b506101fc600160a060020a0360043516611485565b34801561062157600080fd5b506101fc6115a2565b34801561063657600080fd5b506101fc600160a060020a0360043516611668565b34801561065757600080fd5b506102ac6117c3565b34801561066c57600080fd5b50610306600160a060020a03600435166117d3565b34801561068d57600080fd5b506101fc6117ee565b3480156106a257600080fd5b506101fc61188f565b3480156106b757600080fd5b50610306600160a060020a0360043516611990565b3480156106d857600080fd5b506101fc600160a060020a03600435166119ab565b3480156106f957600080fd5b506101fc600160a060020a0360043516611aa6565b34801561071a57600080fd5b506102d5611bc5565b34801561072f57600080fd5b506101fc600160a060020a0360043516611bd4565b34801561075057600080fd5b506102ac600435611c9d565b34801561076857600080fd5b506102ac600160a060020a0360043516611e4c565b34801561078957600080fd5b506102ac600160a060020a0360043516602435611e6a565b3480156107ad57600080fd5b506101fc600160a060020a036004351661209f565b3480156107ce57600080fd5b506101fc600160a060020a03600435166121be565b3480156107ef57600080fd5b506102ac60043561234c565b34801561080757600080fd5b506102d5612487565b34801561081c57600080fd5b506102d5612496565b34801561083157600080fd5b506101fc600160a060020a03600435166124a5565b34801561085257600080fd5b50610306600160a060020a03600435811690602435166125c2565b34801561087957600080fd5b506101fc600160a060020a03600435166125ed565b34801561089a57600080fd5b5061030661279e565b3480156108af57600080fd5b506102ac600160a060020a03600435166127a4565b3480156108d057600080fd5b506102d56127c2565b3480156108e557600080fd5b506101fc6127d1565b600554600090600160a060020a03163314806109145750600454600160a060020a031633145b151561096a576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c792070726f706f7365644f776e6572206f72206f776e65720000000000604482015290519081900360640190fd5b600554600160a060020a031615156109f2576040805160e560020a62461bcd02815260206004820152603b60248201527f63616e206f6e6c792064697372656761726420612070726f706f736564206f7760448201527f6e65722074686174207761732070726576696f75736c79207365740000000000606482015290519081900360840190fd5b5060058054600160a060020a03198116909155604051600160a060020a039091169081907f24f4590b0077912a4db89e7430de7986175c27bede1b47ee039e3b421c2e798e90600090a250565b60408051808201909152600481527f4255534400000000000000000000000000000000000000000000000000000000602082015281565b60055460009060a060020a900460ff1615610ac9576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015610b0257503360009081526007602052604090205460ff16155b1515610b46576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600654600160a060020a031681565b60025490565b60008088518a51148015610bd7575087518a51145b8015610be4575086518a51145b8015610bf1575085518a51145b1515610c47576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b84518a51148015610c59575083518a51145b8015610c66575082518a51145b1515610cbc576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b5060005b8951811015610def57610d918a82815181101515610cda57fe5b906020019060200201518a83815181101515610cf257fe5b906020019060200201518a84815181101515610d0a57fe5b906020019060200201518a85815181101515610d2257fe5b906020019060200201518a86815181101515610d3a57fe5b906020019060200201518a87815181101515610d5257fe5b906020019060200201518a88815181101515610d6a57fe5b906020019060200201518a89815181101515610d8257fe5b906020019060200201516128ab565b1515610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b600101610cc0565b5060019998505050505050505050565b60008060008089516041141515610e60576040805160e560020a62461bcd02815260206004820152601f60248201527f7369676e61747572652073686f756c642068617665206c656e67746820363500604482015290519081900360640190fd5b50505060208701516040880151606089015160001a610e858383838c8c8c8c8c6128ab565b1515610def576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b60055460009060a060020a900460ff1615610f2e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a0383161515610f8e576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015610fd05750600160a060020a03841660009081526007602052604090205460ff16155b8015610fec57503360009081526007602052604090205460ff16155b1515611030576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600160205260409020548211156110a0576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561111b576040805160e560020a62461bcd02815260206004820152601660248201527f696e73756666696369656e7420616c6c6f77616e636500000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020526040902054611144908363ffffffff61323816565b600160a060020a038086166000908152600160205260408082209390935590851681522054611179908363ffffffff61324f16565b600160a060020a0380851660009081526001602090815260408083209490945591871681526003825282812033825290915220546111bd908363ffffffff61323816565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206132a9833981519152929181900390910190a35060019392505050565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e747261637429000000000000000000000000006020808301919091528251918290036033018220828401845260048084527f425553440000000000000000000000000000000000000000000000000000000092840192835293519093909182918083835b602083106112ce5780518252601f1990920191602091820191016112af565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b602083106113535780518252601f199092019160209182019101611334565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505050565b601281565b600454600160a060020a031633146113d9576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b60055460a060020a900460ff16151561143c576040805160e560020a62461bcd02815260206004820152601060248201527f616c726561647920756e70617573656400000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600654600160a060020a031633146114e7576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff161515611559576040805160e560020a62461bcd02815260206004820152601860248201527f6164647265737320616c726561647920756e66726f7a656e0000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19169055517fc3776b472ebf54114339eec9e4dc924e7ce307a97f5c1ee72b6d474e6e5e8b7c9190a250565b600554600090600160a060020a03163314611607576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c7950726f706f7365644f776e6572000000000000000000000000000000604482015290519081900360640190fd5b506004805460058054600160a060020a0319808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600854600160a060020a031633148061168b5750600454600160a060020a031633145b15156116e1576040805160e560020a62461bcd02815260206004820152601e60248201527f6f6e6c7920537570706c79436f6e74726f6c6c6572206f72204f776e65720000604482015290519081900360640190fd5b600160a060020a0381161515611767576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f742073657420737570706c7920636f6e74726f6c6c657220746f2060448201527f61646472657373207a65726f0000000000000000000000000000000000000000606482015290519081900360840190fd5b600854604051600160a060020a038084169216907f40d53b0b666e4424f29d55244e7e171a1dc332acc11d04ed4abd884629d8cc9790600090a360088054600160a060020a031916600160a060020a0392909216919091179055565b60055460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60005460ff1615611849576040805160e560020a62461bcd02815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a031991821681179092556005805482169055600680548216905560006002819055600880549092169092179055805460ff19166001179055565b600454600160a060020a031633146118df576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b60055460a060020a900460ff1615611941576040805160e560020a62461bcd02815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600654600160a060020a03163314806119ce5750600454600160a060020a031633145b1515611a4a576040805160e560020a62461bcd02815260206004820152602160248201527f6f6e6c7920617373657450726f74656374696f6e526f6c65206f72204f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654604051600160a060020a038084169216907fd0c36a0ac0fe0d375386bd568fa2947a2dae7523a0a0cfdab20b7532a105bd1b90600090a360068054600160a060020a031916600160a060020a0392909216919091179055565b600654600160a060020a03163314611b08576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff1615611b79576040805160e560020a62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792066726f7a656e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19166001179055517f90811a8edd3b3c17eeaefffc17f639cc69145d41a359c9843994dc25382036909190a250565b600454600160a060020a031681565b600954600160a060020a0316331480611bf75750600454600160a060020a031633145b1515611c4d576040805160e560020a62461bcd02815260206004820152601960248201527f6f6e6c792057686974656c6973746572206f72204f776e657200000000000000604482015290519081900360640190fd5b60098054600160a060020a031916600160a060020a0383811691821792839055604051919216907f54e20b07412504aee4d17519747ae2f01b9924f7f30059793fe5576c4220a0c390600090a350565b600854600090600160a060020a03163314611d02576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054821115611d74576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820737570706c79000000000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054611d9f908363ffffffff61323816565b600854600160a060020a0316600090815260016020526040902055600254611dcd908363ffffffff61323816565b600255600854604080518481529051600160a060020a03909216917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a639181900360200190a2600854604080518481529051600092600160a060020a0316916000805160206132a9833981519152919081900360200190a3506001919050565b600160a060020a03166000908152600a602052604090205460ff1690565b60055460009060a060020a900460ff1615611ebd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a0383161515611f1d576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015611f5657503360009081526007602052604090205460ff16155b1515611f9a576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b33600090815260016020526040902054821115612001576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b33600090815260016020526040902054612021908363ffffffff61323816565b3360009081526001602052604080822092909255600160a060020a03851681522054612053908363ffffffff61324f16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233926000805160206132a98339815191529281900390910190a350600192915050565b600954600160a060020a03163314612101576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1615612172576040805160e560020a62461bcd02815260206004820152601c60248201527f64656c656761746520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19166001179055517f8a22e0d8ecb02260464e9a55b7d82b17482735ae1f765de59dee573dfec5b36d9190a250565b600454600160a060020a0316331461220e576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b600160a060020a0381161515612294576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572206f776e65727368697020746f2061646460448201527f72657373207a65726f0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a03821614156122f5576040805160e560020a62461bcd02815260206004820152601760248201527f63616c6c657220616c7265616479206973206f776e6572000000000000000000604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a038381169190911791829055600454604051928216929116907ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c090600090a350565b600854600090600160a060020a031633146123b1576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b6002546123c4908363ffffffff61324f16565b600255600854600160a060020a03166000908152600160205260409020546123f2908363ffffffff61324f16565b60088054600160a060020a03908116600090815260016020908152604091829020949094559154825186815292519116927ff5c174d57843e57fea3c649fdde37f015ef08750759cbee88060390566a98797928290030190a2600854604080518481529051600160a060020a03909216916000916000805160206132a9833981519152919081900360200190a3506001919050565b600954600160a060020a031681565b600554600160a060020a031681565b600954600160a060020a03163314612507576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff161515612579576040805160e560020a62461bcd02815260206004820152601860248201527f64656c6567617465206e6f742077686974656c69737465640000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19169055517f12acb305bec2ecc1e4568decc9c8e0423749ceb6ae249eaef4ef375ec174a49c9190a250565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600654600090600160a060020a03163314612652576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526007602052604090205460ff1615156126c4576040805160e560020a62461bcd02815260206004820152601560248201527f61646472657373206973206e6f742066726f7a656e0000000000000000000000604482015290519081900360640190fd5b50600160a060020a038116600090815260016020526040812080549190556002546126f5908263ffffffff61323816565b600255604051600160a060020a038316907ffc5960f1c5a5d2b60f031bf534af053b1bf7d9881989afaeb8b1d164db23aede90600090a2604080518281529051600160a060020a038416917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a63919081900360200190a2604080518281529051600091600160a060020a038516916000805160206132a98339815191529181900360200190a35050565b600c5481565b600160a060020a031660009081526007602052604090205460ff1690565b600854600160a060020a031681565b600454600090600160a060020a03163314612824576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b5030600090815260016020526040808220805490839055600454600160a060020a0316835291205461285c908263ffffffff61324f16565b60048054600160a060020a039081166000908152600160209081526040918290209490945591548251858152925191169230926000805160206132a9833981519152929081900390910190a350565b60055460009081908190819060a060020a900460ff1615612904576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515612993576040805160e560020a62461bcd02815260206004820152602f60248201527f426574612066656174757265206f6e6c7920616363657074732077686974656c60448201527f69737465642064656c6567617465730000000000000000000000000000000000606482015290519081900360840190fd5b60008811806129a25750600087115b1515612a1e576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572207a65726f20746f6b656e73207769746860448201527f207a65726f206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b43851015612a76576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e73616374696f6e206578706972656400000000000000000000000000604482015290519081900360640190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08b1115612aee576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b8960ff16601b1480612b0357508960ff16601c145b1515612b59576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b604080517f4265746144656c6567617465645472616e73666572286164647265737320746f81527f2c75696e743235362076616c75652c75696e74323536206665652c75696e74326020808301919091527f3536207365712c75696e7432353620646561646c696e6529000000000000000082840152825191829003605801822082820152600160a060020a038c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920192839052815191929182918401908083835b60208310612c495780518252601f199092019160209182019101612c2a565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828501855260028084527f1901000000000000000000000000000000000000000000000000000000000000848401908152600c549651929b509397509495508994910192508291908083835b60208310612cdb5780518252601f199092019160209182019101612cbc565b51815160209384036101000a6000190180199092169116179052920194855250838101929092525060408051808403830181529281019081905282519293509182918401908083835b60208310612d435780518252601f199092019160209182019101612d24565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091506001828b8e8e604051600081526020016040526040518085600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019450505050506020604051602081039080840390855afa158015612de7573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a0381161515612e7a576040805160e560020a62461bcd02815260206004820152602d60248201527f6572726f722064657465726d696e696e672066726f6d2061646472657373206660448201527f726f6d207369676e617475726500000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0389161515612eda576040805160e560020a62461bcd02815260206004820152601660248201527f63616e6e6f207573652061646472657373207a65726f00000000000000000000604482015290519081900360640190fd5b600160a060020a03891660009081526007602052604090205460ff16158015612f1c5750600160a060020a03811660009081526007602052604090205460ff16155b8015612f3857503360009081526007602052604090205460ff16155b1515612f7c576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054612fa5898963ffffffff61324f16565b1115612ffb576040805160e560020a62461bcd02815260206004820152601060248201527f696e737566666963656e742066756e6400000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b6020526040902054861461306a576040805160e560020a62461bcd02815260206004820152600d60248201527f696e636f72726563742073657100000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205461309490600163ffffffff61324f16565b600160a060020a0382166000908152600b60205260409020556130e56130c0898963ffffffff61324f16565b600160a060020a0383166000908152600160205260409020549063ffffffff61323816565b600160a060020a03821660009081526001602052604090205586156131685733600090815260016020526040902054613124908863ffffffff61324f16565b336000818152600160209081526040918290209390935580518a815290519192600160a060020a038516926000805160206132a98339815191529281900390910190a35b600160a060020a038916600090815260016020526040902054613191908963ffffffff61324f16565b600160a060020a03808b166000818152600160209081526040918290209490945580518c815290519193928516926000805160206132a983398151915292918290030190a360408051898152602081018890528082018990529051600160a060020a03808c1692908416917fe526c2818be85606ab8e0ea3f317c198ef15baabbb4430bcf2d836eed3c7769b9181900360600190a35060019b9a5050505050505050505050565b6000808383111561324857600080fd5b5050900390565b60008282018381101561326157600080fd5b93925050505600616464726573732066726f7a656e0000000000000000000000000000000000007768656e4e6f7450617573656400000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f6e6c794f776e65720000000000000000000000000000000000000000000000a165627a7a72305820397d985167fdc6322c3d9322f540cf63004879bb36ae7aca6df18510bdc075360029
Deployed Bytecode
0x6080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303acb44881146101e757806306fdde03146101fe578063095ea7b3146102885780630a91b601146102c057806318160ddd146102f15780631b6705611461031857806321ab11f7146104fc57806323b872dd146105755780632ff791611461059f578063313ce567146105b45780633f4ba83a146105df57806345c8b1a6146105f45780634e71e0c81461061557806352875bc31461062a5780635c975abb1461064b57806370a08231146106605780638129fc1c146106815780638456cb591461069657806389f72c21146106ab5780638ceed9cb146106cc5780638d1fdf2f146106ed5780638da5cb5b1461070e57806395d89b41146101fe57806397d60d561461072357806398e52f9a14610744578063a7d87ed01461075c578063a9059cbb1461077d578063ac69275c146107a1578063b5ed298a146107c2578063b921e163146107e3578063c4f62fee146107fb578063d153b60c14610810578063d990c61814610825578063dd62ed3e14610846578063e2f72f031461086d578063e306f7791461088e578063e5839836146108a3578063e7ba1012146108c4578063ebc93aaf146108d9575b600080fd5b3480156101f357600080fd5b506101fc6108ee565b005b34801561020a57600080fd5b50610213610a3f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102ac600160a060020a0360043516602435610a76565b604080519115158252519081900360200190f35b3480156102cc57600080fd5b506102d5610bad565b60408051600160a060020a039092168252519081900360200190f35b3480156102fd57600080fd5b50610306610bbc565b60408051918252519081900360200190f35b34801561032457600080fd5b50604080516020600480358082013583810280860185019096528085526102ac95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750610bc29650505050505050565b34801561050857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102ac94369492936024939284019190819084018382808284375094975050600160a060020a0385351695505050602083013592604081013592506060810135915060800135610dff565b34801561058157600080fd5b506102ac600160a060020a0360043581169060243516604435610edb565b3480156105ab57600080fd5b506101fc611216565b3480156105c057600080fd5b506105c9611384565b6040805160ff9092168252519081900360200190f35b3480156105eb57600080fd5b506101fc611389565b34801561060057600080fd5b506101fc600160a060020a0360043516611485565b34801561062157600080fd5b506101fc6115a2565b34801561063657600080fd5b506101fc600160a060020a0360043516611668565b34801561065757600080fd5b506102ac6117c3565b34801561066c57600080fd5b50610306600160a060020a03600435166117d3565b34801561068d57600080fd5b506101fc6117ee565b3480156106a257600080fd5b506101fc61188f565b3480156106b757600080fd5b50610306600160a060020a0360043516611990565b3480156106d857600080fd5b506101fc600160a060020a03600435166119ab565b3480156106f957600080fd5b506101fc600160a060020a0360043516611aa6565b34801561071a57600080fd5b506102d5611bc5565b34801561072f57600080fd5b506101fc600160a060020a0360043516611bd4565b34801561075057600080fd5b506102ac600435611c9d565b34801561076857600080fd5b506102ac600160a060020a0360043516611e4c565b34801561078957600080fd5b506102ac600160a060020a0360043516602435611e6a565b3480156107ad57600080fd5b506101fc600160a060020a036004351661209f565b3480156107ce57600080fd5b506101fc600160a060020a03600435166121be565b3480156107ef57600080fd5b506102ac60043561234c565b34801561080757600080fd5b506102d5612487565b34801561081c57600080fd5b506102d5612496565b34801561083157600080fd5b506101fc600160a060020a03600435166124a5565b34801561085257600080fd5b50610306600160a060020a03600435811690602435166125c2565b34801561087957600080fd5b506101fc600160a060020a03600435166125ed565b34801561089a57600080fd5b5061030661279e565b3480156108af57600080fd5b506102ac600160a060020a03600435166127a4565b3480156108d057600080fd5b506102d56127c2565b3480156108e557600080fd5b506101fc6127d1565b600554600090600160a060020a03163314806109145750600454600160a060020a031633145b151561096a576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c792070726f706f7365644f776e6572206f72206f776e65720000000000604482015290519081900360640190fd5b600554600160a060020a031615156109f2576040805160e560020a62461bcd02815260206004820152603b60248201527f63616e206f6e6c792064697372656761726420612070726f706f736564206f7760448201527f6e65722074686174207761732070726576696f75736c79207365740000000000606482015290519081900360840190fd5b5060058054600160a060020a03198116909155604051600160a060020a039091169081907f24f4590b0077912a4db89e7430de7986175c27bede1b47ee039e3b421c2e798e90600090a250565b60408051808201909152600481527f4255534400000000000000000000000000000000000000000000000000000000602082015281565b60055460009060a060020a900460ff1615610ac9576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015610b0257503360009081526007602052604090205460ff16155b1515610b46576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600654600160a060020a031681565b60025490565b60008088518a51148015610bd7575087518a51145b8015610be4575086518a51145b8015610bf1575085518a51145b1515610c47576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b84518a51148015610c59575083518a51145b8015610c66575082518a51145b1515610cbc576040805160e560020a62461bcd02815260206004820152600f60248201527f6c656e677468206d69736d617463680000000000000000000000000000000000604482015290519081900360640190fd5b5060005b8951811015610def57610d918a82815181101515610cda57fe5b906020019060200201518a83815181101515610cf257fe5b906020019060200201518a84815181101515610d0a57fe5b906020019060200201518a85815181101515610d2257fe5b906020019060200201518a86815181101515610d3a57fe5b906020019060200201518a87815181101515610d5257fe5b906020019060200201518a88815181101515610d6a57fe5b906020019060200201518a89815181101515610d8257fe5b906020019060200201516128ab565b1515610de7576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b600101610cc0565b5060019998505050505050505050565b60008060008089516041141515610e60576040805160e560020a62461bcd02815260206004820152601f60248201527f7369676e61747572652073686f756c642068617665206c656e67746820363500604482015290519081900360640190fd5b50505060208701516040880151606089015160001a610e858383838c8c8c8c8c6128ab565b1515610def576040805160e560020a62461bcd02815260206004820152600f60248201527f6661696c6564207472616e736665720000000000000000000000000000000000604482015290519081900360640190fd5b60055460009060a060020a900460ff1615610f2e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a0383161515610f8e576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015610fd05750600160a060020a03841660009081526007602052604090205460ff16155b8015610fec57503360009081526007602052604090205460ff16155b1515611030576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600160205260409020548211156110a0576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561111b576040805160e560020a62461bcd02815260206004820152601660248201527f696e73756666696369656e7420616c6c6f77616e636500000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020526040902054611144908363ffffffff61323816565b600160a060020a038086166000908152600160205260408082209390935590851681522054611179908363ffffffff61324f16565b600160a060020a0380851660009081526001602090815260408083209490945591871681526003825282812033825290915220546111bd908363ffffffff61323816565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391926000805160206132a9833981519152929181900390910190a35060019392505050565b604080517f454950373132446f6d61696e28737472696e67206e616d652c6164647265737381527f20766572696679696e67436f6e747261637429000000000000000000000000006020808301919091528251918290036033018220828401845260048084527f425553440000000000000000000000000000000000000000000000000000000092840192835293519093909182918083835b602083106112ce5780518252601f1990920191602091820191016112af565b51815160209384036101000a60001901801990921691161790526040805192909401829003822082820197909752818401969096523060608083019190915283518083039091018152608090910192839052805190959294508493509185019190508083835b602083106113535780518252601f199092019160209182019101611334565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120600c55505050565b601281565b600454600160a060020a031633146113d9576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b60055460a060020a900460ff16151561143c576040805160e560020a62461bcd02815260206004820152601060248201527f616c726561647920756e70617573656400000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600654600160a060020a031633146114e7576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff161515611559576040805160e560020a62461bcd02815260206004820152601860248201527f6164647265737320616c726561647920756e66726f7a656e0000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19169055517fc3776b472ebf54114339eec9e4dc924e7ce307a97f5c1ee72b6d474e6e5e8b7c9190a250565b600554600090600160a060020a03163314611607576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c7950726f706f7365644f776e6572000000000000000000000000000000604482015290519081900360640190fd5b506004805460058054600160a060020a0319808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600854600160a060020a031633148061168b5750600454600160a060020a031633145b15156116e1576040805160e560020a62461bcd02815260206004820152601e60248201527f6f6e6c7920537570706c79436f6e74726f6c6c6572206f72204f776e65720000604482015290519081900360640190fd5b600160a060020a0381161515611767576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f742073657420737570706c7920636f6e74726f6c6c657220746f2060448201527f61646472657373207a65726f0000000000000000000000000000000000000000606482015290519081900360840190fd5b600854604051600160a060020a038084169216907f40d53b0b666e4424f29d55244e7e171a1dc332acc11d04ed4abd884629d8cc9790600090a360088054600160a060020a031916600160a060020a0392909216919091179055565b60055460a060020a900460ff1681565b600160a060020a031660009081526001602052604090205490565b60005460ff1615611849576040805160e560020a62461bcd02815260206004820152601360248201527f616c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6004805433600160a060020a031991821681179092556005805482169055600680548216905560006002819055600880549092169092179055805460ff19166001179055565b600454600160a060020a031633146118df576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b60055460a060020a900460ff1615611941576040805160e560020a62461bcd02815260206004820152600e60248201527f616c726561647920706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b6005805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600160a060020a03166000908152600b602052604090205490565b600654600160a060020a03163314806119ce5750600454600160a060020a031633145b1515611a4a576040805160e560020a62461bcd02815260206004820152602160248201527f6f6e6c7920617373657450726f74656374696f6e526f6c65206f72204f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600654604051600160a060020a038084169216907fd0c36a0ac0fe0d375386bd568fa2947a2dae7523a0a0cfdab20b7532a105bd1b90600090a360068054600160a060020a031916600160a060020a0392909216919091179055565b600654600160a060020a03163314611b08576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03811660009081526007602052604090205460ff1615611b79576040805160e560020a62461bcd02815260206004820152601660248201527f6164647265737320616c72656164792066726f7a656e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600081815260076020526040808220805460ff19166001179055517f90811a8edd3b3c17eeaefffc17f639cc69145d41a359c9843994dc25382036909190a250565b600454600160a060020a031681565b600954600160a060020a0316331480611bf75750600454600160a060020a031633145b1515611c4d576040805160e560020a62461bcd02815260206004820152601960248201527f6f6e6c792057686974656c6973746572206f72204f776e657200000000000000604482015290519081900360640190fd5b60098054600160a060020a031916600160a060020a0383811691821792839055604051919216907f54e20b07412504aee4d17519747ae2f01b9924f7f30059793fe5576c4220a0c390600090a350565b600854600090600160a060020a03163314611d02576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054821115611d74576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820737570706c79000000000000000000000000000000604482015290519081900360640190fd5b600854600160a060020a0316600090815260016020526040902054611d9f908363ffffffff61323816565b600854600160a060020a0316600090815260016020526040902055600254611dcd908363ffffffff61323816565b600255600854604080518481529051600160a060020a03909216917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a639181900360200190a2600854604080518481529051600092600160a060020a0316916000805160206132a9833981519152919081900360200190a3506001919050565b600160a060020a03166000908152600a602052604090205460ff1690565b60055460009060a060020a900460ff1615611ebd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b600160a060020a0383161515611f1d576040805160e560020a62461bcd02815260206004820152601f60248201527f63616e6e6f74207472616e7366657220746f2061646472657373207a65726f00604482015290519081900360640190fd5b600160a060020a03831660009081526007602052604090205460ff16158015611f5657503360009081526007602052604090205460ff16155b1515611f9a576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b33600090815260016020526040902054821115612001576040805160e560020a62461bcd02815260206004820152601260248201527f696e73756666696369656e742066756e64730000000000000000000000000000604482015290519081900360640190fd5b33600090815260016020526040902054612021908363ffffffff61323816565b3360009081526001602052604080822092909255600160a060020a03851681522054612053908363ffffffff61324f16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233926000805160206132a98339815191529281900390910190a350600192915050565b600954600160a060020a03163314612101576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff1615612172576040805160e560020a62461bcd02815260206004820152601c60248201527f64656c656761746520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19166001179055517f8a22e0d8ecb02260464e9a55b7d82b17482735ae1f765de59dee573dfec5b36d9190a250565b600454600160a060020a0316331461220e576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b600160a060020a0381161515612294576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572206f776e65727368697020746f2061646460448201527f72657373207a65726f0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600160a060020a03821614156122f5576040805160e560020a62461bcd02815260206004820152601760248201527f63616c6c657220616c7265616479206973206f776e6572000000000000000000604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a038381169190911791829055600454604051928216929116907ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c090600090a350565b600854600090600160a060020a031633146123b1576040805160e560020a62461bcd02815260206004820152601460248201527f6f6e6c79537570706c79436f6e74726f6c6c6572000000000000000000000000604482015290519081900360640190fd5b6002546123c4908363ffffffff61324f16565b600255600854600160a060020a03166000908152600160205260409020546123f2908363ffffffff61324f16565b60088054600160a060020a03908116600090815260016020908152604091829020949094559154825186815292519116927ff5c174d57843e57fea3c649fdde37f015ef08750759cbee88060390566a98797928290030190a2600854604080518481529051600160a060020a03909216916000916000805160206132a9833981519152919081900360200190a3506001919050565b600954600160a060020a031681565b600554600160a060020a031681565b600954600160a060020a03163314612507576040805160e560020a62461bcd02815260206004820152601b60248201527f6f6e6c794265746144656c656761746557686974656c69737465720000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600a602052604090205460ff161515612579576040805160e560020a62461bcd02815260206004820152601860248201527f64656c6567617465206e6f742077686974656c69737465640000000000000000604482015290519081900360640190fd5b600160a060020a0381166000818152600a6020526040808220805460ff19169055517f12acb305bec2ecc1e4568decc9c8e0423749ceb6ae249eaef4ef375ec174a49c9190a250565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600654600090600160a060020a03163314612652576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c79417373657450726f74656374696f6e526f6c65000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526007602052604090205460ff1615156126c4576040805160e560020a62461bcd02815260206004820152601560248201527f61646472657373206973206e6f742066726f7a656e0000000000000000000000604482015290519081900360640190fd5b50600160a060020a038116600090815260016020526040812080549190556002546126f5908263ffffffff61323816565b600255604051600160a060020a038316907ffc5960f1c5a5d2b60f031bf534af053b1bf7d9881989afaeb8b1d164db23aede90600090a2604080518281529051600160a060020a038416917f1b7e18241beced0d7f41fbab1ea8ed468732edbcb74ec4420151654ca71c8a63919081900360200190a2604080518281529051600091600160a060020a038516916000805160206132a98339815191529181900360200190a35050565b600c5481565b600160a060020a031660009081526007602052604090205460ff1690565b600854600160a060020a031681565b600454600090600160a060020a03163314612824576040805160e560020a62461bcd02815260206004820152600960248201526000805160206132c9833981519152604482015290519081900360640190fd5b5030600090815260016020526040808220805490839055600454600160a060020a0316835291205461285c908263ffffffff61324f16565b60048054600160a060020a039081166000908152600160209081526040918290209490945591548251858152925191169230926000805160206132a9833981519152929081900390910190a350565b60055460009081908190819060a060020a900460ff1615612904576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613289833981519152604482015290519081900360640190fd5b336000908152600a602052604090205460ff161515612993576040805160e560020a62461bcd02815260206004820152602f60248201527f426574612066656174757265206f6e6c7920616363657074732077686974656c60448201527f69737465642064656c6567617465730000000000000000000000000000000000606482015290519081900360840190fd5b60008811806129a25750600087115b1515612a1e576040805160e560020a62461bcd02815260206004820152602960248201527f63616e6e6f74207472616e73666572207a65726f20746f6b656e73207769746860448201527f207a65726f206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b43851015612a76576040805160e560020a62461bcd02815260206004820152601360248201527f7472616e73616374696f6e206578706972656400000000000000000000000000604482015290519081900360640190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08b1115612aee576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b8960ff16601b1480612b0357508960ff16601c145b1515612b59576040805160e560020a62461bcd02815260206004820152601360248201527f7369676e617475726520696e636f727265637400000000000000000000000000604482015290519081900360640190fd5b604080517f4265746144656c6567617465645472616e73666572286164647265737320746f81527f2c75696e743235362076616c75652c75696e74323536206665652c75696e74326020808301919091527f3536207365712c75696e7432353620646561646c696e6529000000000000000082840152825191829003605801822082820152600160a060020a038c1682840152606082018b9052608082018a905260a0820189905260c08083018990528351808403909101815260e090920192839052815191929182918401908083835b60208310612c495780518252601f199092019160209182019101612c2a565b51815160209384036101000a600019018019909216911617905260408051929094018290038220828501855260028084527f1901000000000000000000000000000000000000000000000000000000000000848401908152600c549651929b509397509495508994910192508291908083835b60208310612cdb5780518252601f199092019160209182019101612cbc565b51815160209384036101000a6000190180199092169116179052920194855250838101929092525060408051808403830181529281019081905282519293509182918401908083835b60208310612d435780518252601f199092019160209182019101612d24565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091506001828b8e8e604051600081526020016040526040518085600019166000191681526020018460ff1660ff168152602001836000191660001916815260200182600019166000191681526020019450505050506020604051602081039080840390855afa158015612de7573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a0381161515612e7a576040805160e560020a62461bcd02815260206004820152602d60248201527f6572726f722064657465726d696e696e672066726f6d2061646472657373206660448201527f726f6d207369676e617475726500000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0389161515612eda576040805160e560020a62461bcd02815260206004820152601660248201527f63616e6e6f207573652061646472657373207a65726f00000000000000000000604482015290519081900360640190fd5b600160a060020a03891660009081526007602052604090205460ff16158015612f1c5750600160a060020a03811660009081526007602052604090205460ff16155b8015612f3857503360009081526007602052604090205460ff16155b1515612f7c576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020613269833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054612fa5898963ffffffff61324f16565b1115612ffb576040805160e560020a62461bcd02815260206004820152601060248201527f696e737566666963656e742066756e6400000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b6020526040902054861461306a576040805160e560020a62461bcd02815260206004820152600d60248201527f696e636f72726563742073657100000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381166000908152600b602052604090205461309490600163ffffffff61324f16565b600160a060020a0382166000908152600b60205260409020556130e56130c0898963ffffffff61324f16565b600160a060020a0383166000908152600160205260409020549063ffffffff61323816565b600160a060020a03821660009081526001602052604090205586156131685733600090815260016020526040902054613124908863ffffffff61324f16565b336000818152600160209081526040918290209390935580518a815290519192600160a060020a038516926000805160206132a98339815191529281900390910190a35b600160a060020a038916600090815260016020526040902054613191908963ffffffff61324f16565b600160a060020a03808b166000818152600160209081526040918290209490945580518c815290519193928516926000805160206132a983398151915292918290030190a360408051898152602081018890528082018990529051600160a060020a03808c1692908416917fe526c2818be85606ab8e0ea3f317c198ef15baabbb4430bcf2d836eed3c7769b9181900360600190a35060019b9a5050505050505050505050565b6000808383111561324857600080fd5b5050900390565b60008282018381101561326157600080fd5b93925050505600616464726573732066726f7a656e0000000000000000000000000000000000007768656e4e6f7450617573656400000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6f6e6c794f776e65720000000000000000000000000000000000000000000000a165627a7a72305820397d985167fdc6322c3d9322f540cf63004879bb36ae7aca6df18510bdc075360029
Deployed Bytecode Sourcemap
1434:24633:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11141:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11141:411:0;;;;;;1754:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1754:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1754:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9419:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9419:298:0;-1:-1:-1;;;;;9419:298:0;;;;;;;;;;;;;;;;;;;;;;;;;2240:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:34:0;;;;;;;;-1:-1:-1;;;;;2240:34:0;;;;;;;;;;;;;;6541:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6541:91:0;;;;;;;;;;;;;;;;;;;;23508:714;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;;23508:714:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23508:714:0;;;;-1:-1:-1;23508:714:0;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;;;;;;;;-1:-1:-1;23508:714:0;;-1:-1:-1;23508:714:0;;-1:-1:-1;;;;;;;23508:714:0;18747:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18747:565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18747:565:0;;-1:-1:-1;;;;;;;18747:565:0;;;;-1:-1:-1;;;18747:565:0;;;;;;;;;;-1:-1:-1;18747:565:0;;;;;-1:-1:-1;18747:565:0;;;;;8040:730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8040:730:0;-1:-1:-1;;;;;8040:730:0;;;;;;;;;;;;6088:344;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6088:344:0;;;;1898:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1898:35:0;;;;;;;;;;;;;;;;;;;;;;;12963:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12963:140:0;;;;14289:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14289:203:0;-1:-1:-1;;;;;14289:203:0;;;;;11688:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11688:268:0;;;;15609:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15609:408:0;-1:-1:-1;;;;;15609:408:0;;;;;2175:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2175:26:0;;;;7608:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7608:105:0;-1:-1:-1;;;;;7608:105:0;;;;;5269:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5269:297:0;;;;12734:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12734:134:0;;;;17875:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17875:107:0;-1:-1:-1;;;;;17875:107:0;;;;;13341:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13341:333:0;-1:-1:-1;;;;;13341:333:0;;;;;13955:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13955:197:0;-1:-1:-1;;;;;13955:197:0;;;;;2086:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2086:20:0;;;;24755:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24755:321:0;-1:-1:-1;;;;;24755:321:0;;;;;17058:445;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17058:445:0;;;;;24469:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24469:131:0;-1:-1:-1;;;;;24469:131:0;;;;;6889:499;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6889:499:0;-1:-1:-1;;;;;6889:499:0;;;;;;;25383:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25383:262:0;-1:-1:-1;;;;;25383:262:0;;;;;10650:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10650:343:0;-1:-1:-1;;;;;10650:343:0;;;;;16418:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16418:368:0;;;;;2430:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2430:38:0;;;;2113:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2113:28:0;;;;25802:262;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25802:262:0;-1:-1:-1;;;;;25802:262:0;;;;;10058:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10058:179:0;-1:-1:-1;;;;;10058:179:0;;;;;;;;;;14684:408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14684:408:0;-1:-1:-1;;;;;14684:408:0;;;;;3181:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3181:33:0;;;;15299:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15299:99:0;-1:-1:-1;;;;;15299:99:0;;;;;2358:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2358:31:0;;;;12175:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12175:228:0;;;;11141:411;11214:13;;11403:25;;-1:-1:-1;;;;;11214:13:0;11200:10;:27;;:50;;-1:-1:-1;11245:5:0;;-1:-1:-1;;;;;11245:5:0;11231:10;:19;11200:50;11192:90;;;;;;;-1:-1:-1;;;;;11192:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11301:13;;-1:-1:-1;;;;;11301:13:0;:27;;11293:99;;;;;-1:-1:-1;;;;;11293:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11431:13:0;;;-1:-1:-1;;;;;;11455:26:0;;;;;11497:47;;-1:-1:-1;;;;;11431:13:0;;;;;;11497:47;;11431:13;;11497:47;11141:411;:::o;1754:36::-;;;;;;;;;;;;;;;;;;;:::o;9419:298::-;12598:6;;9500:4;;-1:-1:-1;;;12598:6:0;;;;12597:7;12589:33;;;;;-1:-1:-1;;;;;12589:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12589:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9526:16:0;;;;;;:6;:16;;;;;;;;9525:17;:40;;;;-1:-1:-1;9554:10:0;9547:18;;;;:6;:18;;;;;;;;9546:19;9525:40;9517:67;;;;;;;-1:-1:-1;;;;;9517:67:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;9517:67:0;;;;;;;;;;;;;;;9603:10;9595:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9595:29:0;;;;;;;;;;;;:38;;;9649;;;;;;;9595:29;;9603:10;9649:38;;;;;;;;;;;-1:-1:-1;9705:4:0;9419:298;;;;:::o;2240:34::-;;;-1:-1:-1;;;;;2240:34:0;;:::o;6541:91::-;6612:12;;6541:91;:::o;23508:714::-;23694:4;23972:6;23731:1;:8;23719:1;:8;:20;:44;;;;;23755:1;:8;23743:1;:8;:20;23719:44;:69;;;;;23779:2;:9;23767:1;:8;:21;23719:69;:97;;;;;23804:5;:12;23792:1;:8;:24;23719:97;23711:125;;;;;;;-1:-1:-1;;;;;23711:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23867:3;:10;23855:1;:8;:22;:48;;;;;23893:3;:10;23881:1;:8;:22;23855:48;:79;;;;;23919:8;:15;23907:1;:8;:27;23855:79;23847:107;;;;;;;-1:-1:-1;;;;;23847:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23981:1:0;23967:226;23988:1;:8;23984:1;:12;23967:226;;;24044:86;24067:1;24069;24067:4;;;;;;;;;;;;;;;;;;24073:1;24075;24073:4;;;;;;;;;;;;;;;;;;24079:1;24081;24079:4;;;;;;;;;;;;;;;;;;24085:2;24088:1;24085:5;;;;;;;;;;;;;;;;;;24092;24098:1;24092:8;;;;;;;;;;;;;;;;;;24102:3;24106:1;24102:6;;;;;;;;;;;;;;;;;;24110:3;24114:1;24110:6;;;;;;;;;;;;;;;;;;24118:8;24127:1;24118:11;;;;;;;;;;;;;;;;;;24044:22;:86::i;:::-;24018:163;;;;;;;-1:-1:-1;;;;;24018:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23998:3;;23967:226;;;-1:-1:-1;24210:4:0;;23508:714;-1:-1:-1;;;;;;;;;23508:714:0:o;18747:565::-;18892:4;18980:9;19000;19020:7;18917:3;:10;18931:2;18917:16;18909:60;;;;;;;-1:-1:-1;;;;;18909:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;19082:2:0;19073:12;;19067:19;19120:2;19111:12;;19105:19;19166:2;19157:12;;19151:19;19148:1;19143:28;19200:62;19067:19;19105;19143:28;19232:2;19236:5;19243:3;19248;19253:8;19200:22;:62::i;:::-;19192:90;;;;;;;-1:-1:-1;;;;;19192:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8040:730;12598:6;;8185:4;;-1:-1:-1;;;12598:6:0;;;;12597:7;12589:33;;;;;-1:-1:-1;;;;;12589:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12589:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8215:17:0;;;;8207:61;;;;;-1:-1:-1;;;;;8207:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8288:11:0;;;;;;:6;:11;;;;;;;;8287:12;:30;;;;-1:-1:-1;;;;;;8304:13:0;;;;;;:6;:13;;;;;;;;8303:14;8287:30;:53;;;;-1:-1:-1;8329:10:0;8322:18;;;;:6;:18;;;;;;;;8321:19;8287:53;8279:80;;;;;;;-1:-1:-1;;;;;8279:80:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8279:80:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8388:15:0;;;;;;:8;:15;;;;;;8378:25;;;8370:56;;;;;-1:-1:-1;;;;;8370:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8455:14:0;;;;;;:7;:14;;;;;;;;8470:10;8455:26;;;;;;;;8445:36;;;8437:71;;;;;-1:-1:-1;;;;;8437:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8539:15:0;;;;;;:8;:15;;;;;;:27;;8559:6;8539:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;8521:15:0;;;;;;;:8;:15;;;;;;:45;;;;8593:13;;;;;;;:25;;8611:6;8593:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;8577:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;8658:14;;;;;:7;:14;;;;;8673:10;8658:26;;;;;;;:38;;8689:6;8658:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;8629:14:0;;;;;;;:7;:14;;;;;;;;8644:10;8629:26;;;;;;;;:67;;;;8712:28;;;;;;;;;;;8629:14;;-1:-1:-1;;;;;;;;;;;8712:28:0;;;;;;;;;;-1:-1:-1;8758:4:0;8040:730;;;;;:::o;6088:344::-;2802:80;;;;;;;;;;;;;;;;;;;;;;;;;6361:4;;;;;;;;;;;;;;;;6345:22;;2802:80;;6345:22;;;;6361:4;6345:22;6361:4;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;6345:22:0;;;;;;;;;;;;6234:189;;;;;;;;;;;;;;6402:4;6234:189;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;6234:189:0;;;;;;;;6224:200;;6234:189;;;;-1:-1:-1;6234:189:0;;-1:-1:-1;6224:200:0;;;;;-1:-1:-1;6224:200:0;6234:189;6224:200;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;6224:200:0;;;;;;;;;;6203:18;:221;-1:-1:-1;;;6088:344:0:o;1898:35::-;1931:2;1898:35;:::o;12963:140::-;10414:5;;-1:-1:-1;;;;;10414:5:0;10400:10;:19;10392:41;;;;;-1:-1:-1;;;;;10392:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10392:41:0;;;;;;;;;;;;;;;13018:6;;-1:-1:-1;;;13018:6:0;;;;13010:35;;;;;;;-1:-1:-1;;;;;13010:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13056:6;:14;;-1:-1:-1;;13056:14:0;;;13086:9;;;;13065:5;;13086:9;12963:140::o;14289:203::-;13750:19;;-1:-1:-1;;;;;13750:19:0;13736:10;:33;13728:69;;;;;-1:-1:-1;;;;;13728:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14372:13:0;;;;;;:6;:13;;;;;;;;14364:50;;;;;;;-1:-1:-1;;;;;14364:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14425:13:0;;14441:5;14425:13;;;:6;:13;;;;;;:21;;-1:-1:-1;;14425:21:0;;;14462:22;;;14441:5;14462:22;14289:203;:::o;11688:268::-;11754:13;;11800:17;;-1:-1:-1;;;;;11754:13:0;11740:10;:27;11732:57;;;;;-1:-1:-1;;;;;11732:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11820:5:0;;;11844:13;;;-1:-1:-1;;;;;;11836:21:0;;;-1:-1:-1;;;;;11844:13:0;;;11836:21;;;;;;;;11868:26;;;;;11910:38;;11820:5;;;;11942;;11820;;11910:38;;11820:5;;11910:38;11688:268;:::o;15609:408::-;15708:16;;-1:-1:-1;;;;;15708:16:0;15694:10;:30;;:53;;-1:-1:-1;15742:5:0;;-1:-1:-1;;;;;15742:5:0;15728:10;:19;15694:53;15686:96;;;;;;;-1:-1:-1;;;;;15686:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15801:34:0;;;;15793:91;;;;;-1:-1:-1;;;;;15793:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15920:16;;15900:59;;-1:-1:-1;;;;;15900:59:0;;;;15920:16;;15900:59;;15920:16;;15900:59;15970:16;:39;;-1:-1:-1;;;;;;15970:39:0;-1:-1:-1;;;;;15970:39:0;;;;;;;;;;15609:408::o;2175:26::-;;;-1:-1:-1;;;2175:26:0;;;;;:::o;7608:105::-;-1:-1:-1;;;;;7690:15:0;7663:7;7690:15;;;:8;:15;;;;;;;7608:105::o;5269:297::-;5318:11;;;;5317:12;5309:44;;;;;-1:-1:-1;;;;;5309:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5364:5;:18;;5372:10;-1:-1:-1;;;;;;5364:18:0;;;;;;;;5393:13;:26;;;;;;5430:19;:32;;;;;;-1:-1:-1;5473:12:0;:16;;;5500;:29;;;;;;;;;;5540:18;;-1:-1:-1;;5540:18:0;-1:-1:-1;5540:18:0;;;5269:297::o;12734:134::-;10414:5;;-1:-1:-1;;;;;10414:5:0;10400:10;:19;10392:41;;;;;-1:-1:-1;;;;;10392:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10392:41:0;;;;;;;;;;;;;;;12788:6;;-1:-1:-1;;;12788:6:0;;;;12787:7;12779:34;;;;;-1:-1:-1;;;;;12779:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12824:6;:13;;-1:-1:-1;;12824:13:0;-1:-1:-1;;;12824:13:0;;;12853:7;;;;12824:13;;12853:7;12734:134::o;17875:107::-;-1:-1:-1;;;;;17958:16:0;17931:7;17958:16;;;:8;:16;;;;;;;17875:107::o;13341:333::-;13446:19;;-1:-1:-1;;;;;13446:19:0;13432:10;:33;;:56;;-1:-1:-1;13483:5:0;;-1:-1:-1;;;;;13483:5:0;13469:10;:19;13432:56;13424:102;;;;;;;-1:-1:-1;;;;;13424:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13565:19;;13542:68;;-1:-1:-1;;;;;13542:68:0;;;;13565:19;;13542:68;;13565:19;;13542:68;13621:19;:45;;-1:-1:-1;;;;;;13621:45:0;-1:-1:-1;;;;;13621:45:0;;;;;;;;;;13341:333::o;13955:197::-;13750:19;;-1:-1:-1;;;;;13750:19:0;13736:10;:33;13728:69;;;;;-1:-1:-1;;;;;13728:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14037:13:0;;;;;;:6;:13;;;;;;;;14036:14;14028:49;;;;;-1:-1:-1;;;;;14028:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14088:13:0;;;;;;:6;:13;;;;;;:20;;-1:-1:-1;;14088:20:0;14104:4;14088:20;;;14124;;;14088:13;14124:20;13955:197;:::o;2086:20::-;;;-1:-1:-1;;;;;2086:20:0;;:::o;24755:321::-;24856:23;;-1:-1:-1;;;;;24856:23:0;24842:10;:37;;:60;;-1:-1:-1;24897:5:0;;-1:-1:-1;;;;;24897:5:0;24883:10;:19;24842:60;24834:98;;;;;;;-1:-1:-1;;;;;24834:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24943:23;:41;;-1:-1:-1;;;;;;24943:41:0;-1:-1:-1;;;;;24943:41:0;;;;;;;;;;25000:68;;24943:41;;25027:23;;25000:68;;-1:-1:-1;;25000:68:0;24755:321;:::o;17058:445::-;16090:16;;17135:12;;-1:-1:-1;;;;;16090:16:0;16076:10;:30;16068:63;;;;;-1:-1:-1;;;;;16068:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17187:16;;-1:-1:-1;;;;;17187:16:0;17178:26;;;;:8;:26;;;;;;17168:36;;;17160:66;;;;;-1:-1:-1;;;;;17160:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17275:16;;-1:-1:-1;;;;;17275:16:0;17266:26;;;;:8;:26;;;;;;:38;;17297:6;17266:38;:30;:38;:::i;:::-;17246:16;;-1:-1:-1;;;;;17246:16:0;17237:26;;;;:8;:26;;;;;:67;17330:12;;:24;;17347:6;17330:24;:16;:24;:::i;:::-;17315:12;:39;17386:16;;17370:41;;;;;;;;-1:-1:-1;;;;;17386:16:0;;;;17370:41;;;;;;;;;17436:16;;17427:46;;;;;;;;17462:1;;-1:-1:-1;;;;;17436:16:0;;-1:-1:-1;;;;;;;;;;;17427:46:0;;;;;;;;;-1:-1:-1;17491:4:0;17058:445;;;:::o;24469:131::-;-1:-1:-1;;;;;24564:28:0;24540:4;24564:28;;;:21;:28;;;;;;;;;24469:131::o;6889:499::-;12598:6;;6966:4;;-1:-1:-1;;;12598:6:0;;;;12597:7;12589:33;;;;;-1:-1:-1;;;;;12589:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12589:33:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6991:17:0;;;;6983:61;;;;;-1:-1:-1;;;;;6983:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7064:11:0;;;;;;:6;:11;;;;;;;;7063:12;:35;;;;-1:-1:-1;7087:10:0;7080:18;;;;:6;:18;;;;;;;;7079:19;7063:35;7055:62;;;;;;;-1:-1:-1;;;;;7055:62:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7055:62:0;;;;;;;;;;;;;;;7155:10;7146:20;;;;:8;:20;;;;;;7136:30;;;7128:61;;;;;-1:-1:-1;;;;;7128:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7234:10;7225:20;;;;:8;:20;;;;;;:32;;7250:6;7225:32;:24;:32;:::i;:::-;7211:10;7202:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;7284:13:0;;;;;;:25;;7302:6;7284:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;7268:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;7325:33;;;;;;;7268:13;;7334:10;;-1:-1:-1;;;;;;;;;;;7325:33:0;;;;;;;;;-1:-1:-1;7376:4:0;6889:499;;;;:::o;25383:262::-;25156:23;;-1:-1:-1;;;;;25156:23:0;25142:10;:37;25134:77;;;;;-1:-1:-1;;;;;25134:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25484:28:0;;;;;;:21;:28;;;;;;;;25483:29;25475:70;;;;;-1:-1:-1;;;;;25475:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25556:28:0;;;;;;:21;:28;;;;;;:35;;-1:-1:-1;;25556:35:0;25587:4;25556:35;;;25607:30;;;25556:28;25607:30;25383:262;:::o;10650:343::-;10414:5;;-1:-1:-1;;;;;10414:5:0;10400:10;:19;10392:41;;;;;-1:-1:-1;;;;;10392:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10392:41:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10732:28:0;;;;10724:82;;;;;-1:-1:-1;;;;;10724:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10825:10;-1:-1:-1;;;;;10825:28:0;;;;10817:64;;;;;-1:-1:-1;;;;;10817:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10892:13;:30;;-1:-1:-1;;;;;;10892:30:0;-1:-1:-1;;;;;10892:30:0;;;;;;;;;;;10964:5;;10938:47;;10971:13;;;;10964:5;;;10938:47;;-1:-1:-1;;10938:47:0;10650:343;:::o;16418:368::-;16090:16;;16495:12;;-1:-1:-1;;;;;16090:16:0;16076:10;:30;16068:63;;;;;-1:-1:-1;;;;;16068:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16535:12;;:24;;16552:6;16535:24;:16;:24;:::i;:::-;16520:12;:39;16608:16;;-1:-1:-1;;;;;16608:16:0;16599:26;;;;:8;:26;;;;;;:38;;16630:6;16599:38;:30;:38;:::i;:::-;16579:16;;;-1:-1:-1;;;;;16579:16:0;;;16570:26;;;;:8;:26;;;;;;;;;:67;;;;16669:16;;16653:41;;;;;;;16669:16;;;16653:41;;;;;;;;16731:16;;16710:46;;;;;;;;-1:-1:-1;;;;;16731:16:0;;;;;;-1:-1:-1;;;;;;;;;;;16710:46:0;;;;;;;;;-1:-1:-1;16774:4:0;16418:368;;;:::o;2430:38::-;;;-1:-1:-1;;;;;2430:38:0;;:::o;2113:28::-;;;-1:-1:-1;;;;;2113:28:0;;:::o;25802:262::-;25156:23;;-1:-1:-1;;;;;25156:23:0;25142:10;:37;25134:77;;;;;-1:-1:-1;;;;;25134:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25904:28:0;;;;;;:21;:28;;;;;;;;25896:65;;;;;;;-1:-1:-1;;;;;25896:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25972:28:0;;26003:5;25972:28;;;:21;:28;;;;;;:36;;-1:-1:-1;;25972:36:0;;;26024:32;;;26003:5;26024:32;25802:262;:::o;10058:179::-;-1:-1:-1;;;;;10204:15:0;;;10172:7;10204:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;10058:179::o;14684:408::-;13750:19;;14826:16;;-1:-1:-1;;;;;13750:19:0;13736:10;:33;13728:69;;;;;-1:-1:-1;;;;;13728:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14776:13:0;;;;;;:6;:13;;;;;;;;14768:47;;;;;;;-1:-1:-1;;;;;14768:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;14845:15:0;;;;;;:8;:15;;;;;;;14871:19;;;14916:12;;:26;;14845:15;14916:26;:16;:26;:::i;:::-;14901:12;:41;14958:25;;-1:-1:-1;;;;;14958:25:0;;;;;;;;14999:32;;;;;;;;-1:-1:-1;;;;;14999:32:0;;;;;;;;;;;;;15047:37;;;;;;;;15071:1;;-1:-1:-1;;;;;15047:37:0;;;-1:-1:-1;;;;;;;;;;;15047:37:0;;;;;;;;14684:408;;:::o;3181:33::-;;;;:::o;15299:99::-;-1:-1:-1;;;;;15377:13:0;15353:4;15377:13;;;:6;:13;;;;;;;;;15299:99::o;2358:31::-;;;-1:-1:-1;;;;;2358:31:0;;:::o;12175:228::-;10414:5;;12228:16;;-1:-1:-1;;;;;10414:5:0;10400:10;:19;10392:41;;;;;-1:-1:-1;;;;;10392:41:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10392:41:0;;;;;;;;;;;;;;;-1:-1:-1;12256:4:0;12247:14;;;;:8;:14;;;;;;;;12272:18;;;;12328:5;;-1:-1:-1;;;;;12328:5:0;12319:15;;;;;:29;;12247:14;12319:29;:19;:29;:::i;:::-;12310:5;;;-1:-1:-1;;;;;12310:5:0;;;12301:15;;;;:8;:15;;;;;;;;;:47;;;;12379:5;;12364:31;;;;;;;12379:5;;;12373:4;;-1:-1:-1;;;;;;;;;;;12364:31:0;;;;;;;;;;12175:228;:::o;20516:1975::-;12598:6;;20698:4;;;;;;;;-1:-1:-1;;;12598:6:0;;;;12597:7;12589:33;;;;;-1:-1:-1;;;;;12589:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12589:33:0;;;;;;;;;;;;;;;20745:10;20723:33;;;;:21;:33;;;;;;;;20715:93;;;;;;;-1:-1:-1;;;;;20715:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20835:1;20827:5;:9;:20;;;;20846:1;20840:3;:7;20827:20;20819:74;;;;;;;-1:-1:-1;;;;;20819:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20912:12;:24;-1:-1:-1;20912:24:0;20904:56;;;;;-1:-1:-1;;;;;20904:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21047:66;21033:80;;;21025:112;;;;;-1:-1:-1;;;;;21025:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21156:1;:7;;21161:2;21156:7;:18;;;;21167:1;:7;;21172:2;21167:7;21156:18;21148:50;;;;;;;-1:-1:-1;;;;;21148:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2955:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21341:149;;;;-1:-1:-1;;;;;21437:11:0;;21341:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;21341:149:0;;;;;;;;21331:160;;21341:149;;;;;21331:160;;;;21341:149;21331:160;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21331:160:0;;;;;;;;;;;;21544:13;;;;;;;;;;;;;;;;21559:18;;21527:74;;21331:160;;-1:-1:-1;21331:160:0;;-1:-1:-1;21559:18:0;;-1:-1:-1;21331:160:0;;21527:74;;;-1:-1:-1;21527:74:0;;21544:13;;21527:74;21544:13;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;21527:74:0;;;;;-1:-1:-1;21527:74:0;;;;;;;-1:-1:-1;21527:74:0;;;26:21:-1;;;22:32;;6:49;;21527:74:0;;;;;;;21517:85;;21527:74;;-1:-1:-1;21527:74:0;;;21517:85;;;;21527:74;21517:85;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;21517:85:0;;;;;;;;;;;;;;;;21502:100;;21629:24;21639:4;21645:1;21648;21651;21629:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21629:24:0;;-1:-1:-1;;21629:24:0;;;-1:-1:-1;;;;;;;21674:19:0;;;;21666:77;;;;;-1:-1:-1;;;;;21666:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21762:16:0;;;;21754:51;;;;;-1:-1:-1;;;;;21754:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21825:10:0;;;;;;:6;:10;;;;;;;;21824:11;:29;;;;-1:-1:-1;;;;;;21840:13:0;;;;;;:6;:13;;;;;;;;21839:14;21824:29;:52;;;;-1:-1:-1;21865:10:0;21858:18;;;;:6;:18;;;;;;;;21857:19;21824:52;21816:79;;;;;;;-1:-1:-1;;;;;21816:79:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21816:79:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21932:15:0;;;;;;:8;:15;;;;;;21914:14;:5;21924:3;21914:14;:9;:14;:::i;:::-;:33;;21906:62;;;;;-1:-1:-1;;;;;21906:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21987:15:0;;;;;;:8;:15;;;;;;:22;;21979:48;;;;;-1:-1:-1;;;;;21979:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22058:15:0;;;;;;:8;:15;;;;;;:22;;22078:1;22058:22;:19;:22;:::i;:::-;-1:-1:-1;;;;;22040:15:0;;;;;;:8;:15;;;;;:40;22109:35;22129:14;:5;22139:3;22129:14;:9;:14;:::i;:::-;-1:-1:-1;;;;;22109:15:0;;;;;;:8;:15;;;;;;;:35;:19;:35;:::i;:::-;-1:-1:-1;;;;;22091:15:0;;;;;;:8;:15;;;;;:53;22161:8;;22157:145;;22218:10;22209:20;;;;:8;:20;;;;;;:29;;22234:3;22209:29;:24;:29;:::i;:::-;22195:10;22186:20;;;;:8;:20;;;;;;;;;:52;;;;22258:32;;;;;;;22195:10;;-1:-1:-1;;;;;22258:32:0;;;-1:-1:-1;;;;;;;;;;;22258:32:0;;;;;;;;;22157:145;-1:-1:-1;;;;;22329:12:0;;;;;;:8;:12;;;;;;:23;;22346:5;22329:23;:16;:23;:::i;:::-;-1:-1:-1;;;;;22314:12:0;;;;;;;:8;:12;;;;;;;;;:38;;;;22368:26;;;;;;;22314:12;;22368:26;;;;-1:-1:-1;;;;;;;;;;;22368:26:0;;;;;;;;22412:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22412:49:0;;;;;;;;;;;;;;;;;-1:-1:-1;22479:4:0;;20516:1975;-1:-1:-1;;;;;;;;;;;20516:1975:0:o;309:150::-;367:7;;395:6;;;;387:15;;;;;;-1:-1:-1;;425:5:0;;;309:150::o;535:::-;593:7;625:5;;;649:6;;;;641:15;;;;;;676:1;535:150;-1:-1:-1;;;535:150:0:o
Swarm Source
bzzr://397d985167fdc6322c3d9322f540cf63004879bb36ae7aca6df18510bdc07536
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.