@SuppressWarnings("unchecked")
	public Map<String, Object> readDaily(String file) {
		Map<String, Object> result = new LinkedHashMap<String, Object>();
        try{
            // Open the file
            FileInputStream fstream = new FileInputStream(file);
            // Get the object of DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String sDate = "";
            String strLine;
            int soNgay = 0;
            int soGiai = 0;
            int soGiaiPhu = 0;
            int n = 0;
            String oldDB = "";
            while ((strLine = br.readLine().trim()) != null) {
            	//
            	if(strLine.trim().isEmpty()) continue;
            	Map<String, String> cac_giai_cua_ngay = new LinkedHashMap<String, String>();
            	//Keep the date
            	if(strLine.startsWith("===")){
            		System.out.println("Start of day !!!!!!!!!!!!!!!!!!!!!");
            		//clean "="
            		strLine = strLine.replaceAll("=", "");
            		//clean "Ngay"
            		strLine = strLine.replaceAll("Ngay", "");
            		sDate = strLine.trim();
            		result.put(sDate, cac_giai_cua_ngay);
            		soNgay++;
            		soGiai=1;
            		soGiaiPhu=1;
            		n=1;
            		
            		continue;
            	} else {
            		cac_giai_cua_ngay = (Map<String, String>) result.get(sDate);
            	}
            	
            	//restric so ngay
            	if(soNgay > 30){
            		break;
            	}
            	
            	String ten_giai = getTenGiai(soGiai, soGiaiPhu).trim();
            	//System.out.println("ten_giai========= '"+ten_giai);
            	String giai = strLine.trim();
            	//System.out.println("giai=========xxxx '"+giai);
            	cac_giai_cua_ngay.put(ten_giai, giai);
            	result.put(sDate, cac_giai_cua_ngay);
            	
            	//
            	if(ten_giai.equalsIgnoreCase(DB_GIAI)) {
            		//
            		if(soNgay > 1){
            			DB.add(giai);
            		}
            	}
            	
            	//
            	if(isChangeGiai(n)){
            		soGiai++;
            		soGiaiPhu=0;
            	}
            	
            	if(n >= 27) {
            		//reset vars
            		System.out.println("so giai is "+n);
            	}
            	
            	//
            	n++;
            	soGiaiPhu++;
            }
        }catch (Exception e){
            System.err.println("readData: " + e.getMessage());
        }
        return result;
	}