code: function decodePubModes(string) {
  	var decStr, mode, i, l;
  	decStr = decodeString(string);
  	mode = {raw : false, merge : false,	distinct : false, command : false};
  
  	if (decStr) {
  		l = decStr.length;
  		for(i = 0; i < l; i++) {
  			if (decStr.charAt(i) === modeValues.RAW) {
  				mode.raw = true;
  			} else if (decStr.charAt(i) === modeValues.MERGE) {
  				mode.merge = true;
  			} else if (decStr.charAt(i) === modeValues.DISTINCT) {
  				mode.distinct = true;
  			} else if (decStr.charAt(i) === modeValues.COMMAND) {
  				mode.command = true;
  			} else {
  				throw new Error('Invalid mode "' + decStr.charAt(i) + '"');
  			}
  
  		}
  	}
  	return mode;
  }
docs: Decodes a string as a publish mode associative array.
  eg. "M|R" = {raw: true, merge: true, distinct: false, command: false}.
  
  @param {String} string pipe-delimited string
  @return {Array} publish mode flags
  @private