var FIELDS = [
	'overcurrent',
	'fetShort',
	'softwareFault',
	'batteryHvd',
	'arrayHvd',
	'dipSwitchChange',
	'customSettingsEdit',
	'rtsShorted',
	'rtsDisconnected',
	'eepromRetryLimit',
	'controllerWasReset',
	'chargeSlaveControlTimeout',
	'rs232SerialToMeterBridge',
	'batteryLvd',
	'fault14Undefined',
	'powerboardCommunicationFault',
	'fault16Software',
	'fault17Software',
	'fault18Software',
	'fault19Software',
	'fault20Software',
	'fault21Software',
	'fpgaVersion',
	'currentSensorReferenceOutOfRange',
	'ia-refSlaveModeTimeout',
	'blockbusBoot',
	'hscommMaster',
	'hscomm',
	'slave',
];

var flags = parseInt(value.replace(/\x20/g, ''), 16),
	result = [];

for (var i = 0, f = 1 << 31 >>> 0, l = FIELDS.length; i < l; i++, f >>>= 1) {
	if (flags & f) {
		result.push(FIELDS[i]);
	}
}

return result.length ? result.join('\n') : 'No faults';