contract TXT is PausableToken {
	using SafeMath for uint256;
    
	string public constant name	= 'TXT';
	string public constant symbol = 'TXT';
	uint public constant decimals = 4;
	uint public constant INITIAL_SUPPLY = 50*10**12;

	constructor() public {
		totalSupply_ = INITIAL_SUPPLY;
		balances[owner] = totalSupply_;
		emit Transfer(address(0x0), owner, totalSupply_);
	}

	function batchTransfer(address[] _recipients, uint256 _value) public whenControllableNotPaused returns (bool) {
		uint256 count = _recipients.length;
		require(count > 0 && count <= 20);
		uint256 needAmount = count.mul(_value);
		require(_value > 0 && balances[msg.sender] >= needAmount);

		for (uint256 i = 0; i < count; i++) {
			transfer(_recipients[i], _value);
		}
		return true;
	}
	
    // Record private sale wallet to allow transfering.
    address public privateSaleWallet;

    // Crowdsale contract address.
    address public crowdsaleAddress;
    
    // Lock tokens contract address.
    address public lockTokensAddress;
    
    function setLockTokensAddress(address _lockTokensAddress) external onlyOwner {
        lockTokensAddress = _lockTokensAddress;
    }
	
    function setCrowdsaleAddress(address _crowdsaleAddress) external onlyOwner {
        // Can only set one time.
        require(crowdsaleAddress == address(0));
        require(_crowdsaleAddress != address(0));
        crowdsaleAddress = _crowdsaleAddress;
    }

    function setPrivateSaleAddress(address _privateSaleWallet) external onlyOwner {
        // Can only set one time.
        require(privateSaleWallet == address(0));
        privateSaleWallet = _privateSaleWallet;
    }
    
    // revert error pay 
    function () public {
        revert();
    }
}
function () public {
    revert();
}

// revert error pay 