var FIELDS = [
	'rtsOpen',
	'rtsShorted',
	'rtsDisconnected',
	'heatsinkTempSensorOpen',
	'heatsinkTempSensorShorted',
	'highTemperatureCurrentLimit',
	'currentLimit',
	'currentOffset',
	'batterySense',
	'batterySenseDisconnected',
	'uncalibrated',
	'rtsMiswire',
	'highVoltageDisconnect',
	'undefined',
	'systemMiswire',
	'mosfetSOpen',
	'p12VoltageOutOfRange',
	'highArrayVCurrentLimit',
	'maxAdcValueReached',
	'controllerWasReset',
	'alarm21Internal',
	'p3VoltageOutOfRange',
	'derateLimit',
	'arrayCurrentOffset',
	'ee-i2cRetryLimit',
	'ethernetAlarm',
	'lvd',
	'software',
	'fp12VoltageOutOfRange',
	'extflashFault',
	'slaveControlFault',
	'alarm32Undefined'
];

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 alarms';