public static LinkedHashMap<String,Object> array_flip(Map<String,Object> hm) {
		//OK 
		LinkedHashMap<String,Object> newhm = new LinkedHashMap<String,Object>();
		if (hm == null) return newhm;
		synchronized (hm) {
			for (Map.Entry<String,Object> entry : hm.entrySet()) {
				String key = entry.getKey();
				Object value = entry.getValue();
				String valueStr = "";
				try {
					if (value != null) {
						valueStr = value.toString();
					}
					newhm.put(valueStr,key);
				} catch (Throwable e) {

				}
			}
		}
		return newhm;
	}