Index: trunk/src/cptms/messagefile.txt
===================================================================
--- trunk/src/cptms/messagefile.txt	(revision 295)
+++ trunk/src/cptms/messagefile.txt	(revision 297)
@@ -1,1 +1,1 @@
-["","slow traffic ahead","left lane closed"]
+["","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","Road Work|10PM - 6AM|","||","||","slow traffic|ahead|","SLOW TRAFFIC||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","closed||","||","||","||","||","||","||","||","||","||","||","||","||","||","||","||"]
Index: trunk/src/cptms/cmsStatusD12.json
===================================================================
--- trunk/src/cptms/cmsStatusD12.json	(revision 297)
+++ trunk/src/cptms/cmsStatusD12.json	(revision 297)
@@ -0,0 +1,3397 @@
+{
+	"data":
+	[
+		{
+			"cms":
+			{
+				"index": "1200022",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "VISTA HERMOSA",
+					"nearbyPlace":    "San Clemente",
+					"longitude":      "-117.630113",
+					"latitude":       "33.444697",
+					"elevation":      "206",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "4.01",
+					"alignment":      "",
+					"milepost":       "76.25"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "405 FREEWAY   16",
+						"phase1Line3": "JW AIRPORT    23"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200023",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "AEROPUERTO",
+					"nearbyPlace":    "San Juan Capistrano",
+					"longitude":      "-117.669201",
+					"latitude":       "33.481886",
+					"elevation":      "88",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "8.01",
+					"alignment":      "",
+					"milepost":       "80.27"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "405 FREEWAY   12",
+						"phase1Line3": "55 FREEWAY    21"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200024",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "EL TORO",
+					"nearbyPlace":    "Laguna Hills",
+					"longitude":      "-117.706059",
+					"latitude":       "33.613779",
+					"elevation":      "380",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "18.59",
+					"alignment":      "",
+					"milepost":       "90.83"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200025",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "S\/O REDHILL",
+					"nearbyPlace":    "Tustin",
+					"longitude":      "-117.807584",
+					"latitude":       "33.728551",
+					"elevation":      "95",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "28.54",
+					"alignment":      "",
+					"milepost":       "100.78"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200026",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "17TH ST.",
+					"nearbyPlace":    "Santa Ana",
+					"longitude":      "-117.860465",
+					"latitude":       "33.759171",
+					"elevation":      "180",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "32.36",
+					"alignment":      "",
+					"milepost":       "104.63"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200027",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "STATE COLLEGE",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.889301",
+					"latitude":       "33.791531",
+					"elevation":      "150",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "35.16",
+					"alignment":      "",
+					"milepost":       "107.4"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200028",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "BROOKHURST ST.",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.948993",
+					"latitude":       "33.840168",
+					"elevation":      "127",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "40.03",
+					"alignment":      "",
+					"milepost":       "112.27"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200029",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "LOS ALISOS AVE.",
+					"nearbyPlace":    "Laguna Hills",
+					"longitude":      "-117.697775",
+					"latitude":       "33.608063",
+					"elevation":      "393",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "17.96",
+					"alignment":      "",
+					"milepost":       "90.21"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200030",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "JEFFREY",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.766893",
+					"latitude":       "33.687054",
+					"elevation":      "170",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "24.78",
+					"alignment":      "",
+					"milepost":       "97.04"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200031",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "17TH ST.",
+					"nearbyPlace":    "Santa Ana",
+					"longitude":      "-117.862165",
+					"latitude":       "33.759473",
+					"elevation":      "170",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "32.44",
+					"alignment":      "",
+					"milepost":       "104.75"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200032",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "ANAHEIM BLVD",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.904051",
+					"latitude":       "33.804356",
+					"elevation":      "154",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "36.46",
+					"alignment":      "",
+					"milepost":       "108.65"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "55 FREEWAY     8",
+						"phase1Line3": "133 FREEWAY   15"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200033",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "BROADWAY AVE.",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.929983",
+					"latitude":       "33.829882",
+					"elevation":      "127",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "38.7",
+					"alignment":      "",
+					"milepost":       "110.93"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "55 FREEWAY     9",
+						"phase1Line3": "133 FREEWAY   17"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200034",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "ARTESIA ST.",
+					"nearbyPlace":    "Buena Park",
+					"longitude":      "-118.006132",
+					"latitude":       "33.870302",
+					"elevation":      "78",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "43.96",
+					"alignment":      "",
+					"milepost":       "116.23"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200035",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "HARBOR ST.",
+					"nearbyPlace":    "Garden Grove",
+					"longitude":      "-117.913378",
+					"latitude":       "33.76994",
+					"elevation":      "108",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-22",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "8.27",
+					"alignment":      "",
+					"milepost":       "9.74"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200036",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "CAMBRIDGE ST.",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.843417",
+					"latitude":       "33.776622",
+					"elevation":      "206",
+					"direction":      "West",
+					"county":         "Orange",
+					"route":          "SR-22",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "12.42",
+					"alignment":      "",
+					"milepost":       "13.98"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200037",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "DYER ROAD",
+					"nearbyPlace":    "Santa Ana",
+					"longitude":      "-117.847695",
+					"latitude":       "33.712247",
+					"elevation":      "68",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "8.21",
+					"alignment":      "",
+					"milepost":       "8.22"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200038",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "MEATS AVE",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.831691",
+					"latitude":       "33.822628",
+					"elevation":      "275",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "16.12",
+					"alignment":      "",
+					"milepost":       "16.07"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200039",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "PAULARINO",
+					"nearbyPlace":    "Costa Mesa",
+					"longitude":      "-117.875754",
+					"latitude":       "33.683906",
+					"elevation":      "45",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "5.68",
+					"alignment":      "",
+					"milepost":       "5.68"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200040",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "WARNER AVE",
+					"nearbyPlace":    "Tustin",
+					"longitude":      "-117.843494",
+					"latitude":       "33.717264",
+					"elevation":      "85",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "8.64",
+					"alignment":      "",
+					"milepost":       "8.64"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": " I-405 TO CLOSE ",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200041",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "SANTA CLARA AVE.",
+					"nearbyPlace":    "Tustin",
+					"longitude":      "-117.831216",
+					"latitude":       "33.767232",
+					"elevation":      "203",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "12.3",
+					"alignment":      "",
+					"milepost":       "12.27"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200042",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "KATELLA",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.832172",
+					"latitude":       "33.808725",
+					"elevation":      "269",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "15.16",
+					"alignment":      "",
+					"milepost":       "15.12"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200043",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "CHAPMAN AVE",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.879574",
+					"latitude":       "33.786456",
+					"elevation":      "154",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "11.18",
+					"alignment":      "",
+					"milepost":       "0.46"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "HONDA CENTER",
+						"phase1Line2": "EXIT",
+						"phase1Line3": "KATELLA AVE"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200044",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "WAGNER AVE.",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.875932",
+					"latitude":       "33.825274",
+					"elevation":      "200",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "13.91",
+					"alignment":      "",
+					"milepost":       "3.18"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200045",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "WAGNER AVE.",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.876328",
+					"latitude":       "33.825497",
+					"elevation":      "196",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "13.92",
+					"alignment":      "",
+					"milepost":       "3.19"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "HONDA CENTER",
+						"phase1Line2": "EXIT",
+						"phase1Line3": "BALL ROAD"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200046",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "YORBA LINDA BLVD",
+					"nearbyPlace":    "Fullerton",
+					"longitude":      "-117.880875",
+					"latitude":       "33.889973",
+					"elevation":      "285",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "18.41",
+					"alignment":      "",
+					"milepost":       "7.67"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200047",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "HOLDER",
+					"nearbyPlace":    "Buena Park",
+					"longitude":      "-118.018053",
+					"latitude":       "33.855681",
+					"elevation":      "78",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "1.46",
+					"alignment":      "",
+					"milepost":       "16.18"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "55 FREEWAY    14",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200048",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "ACACIA",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.900723",
+					"latitude":       "33.853692",
+					"elevation":      "180",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "4.6",
+					"alignment":      "",
+					"milepost":       "22.98"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200049",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "EUCLID",
+					"nearbyPlace":    "Fullerton",
+					"longitude":      "-117.944242",
+					"latitude":       "33.854316",
+					"elevation":      "141",
+					"direction":      "West",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "2.09",
+					"alignment":      "",
+					"milepost":       "20.46"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200050",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "LAKEVIEW",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.813397",
+					"latitude":       "33.852168",
+					"elevation":      "282",
+					"direction":      "West",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "10.19",
+					"alignment":      "",
+					"milepost":       "28.56"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "  MINUTES TO:   ",
+						"phase1Line2": "ORANGETHORPE  14",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200051",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "WIER CANYON",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.689271",
+					"latitude":       "33.873408",
+					"elevation":      "465",
+					"direction":      "West",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "17.82",
+					"alignment":      "L",
+					"milepost":       "36.19"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Not Reported",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "Not Reported",
+						"phase1Line2": "Not Reported",
+						"phase1Line3": "Not Reported"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "Not Reported",
+						"phase2Line2": "Not Reported",
+						"phase2Line3": "Not Reported"
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200052",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "HARVARD",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.831322",
+					"latitude":       "33.672632",
+					"elevation":      "62",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "6.15",
+					"alignment":      "",
+					"milepost":       "5.93"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200053",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "MAGNOLIA ST",
+					"nearbyPlace":    "Fountain Valley",
+					"longitude":      "-117.971297",
+					"latitude":       "33.719788",
+					"elevation":      "42",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "15.18",
+					"alignment":      "",
+					"milepost":       "14.93"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200055",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "JEFFREY",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.796762",
+					"latitude":       "33.663333",
+					"elevation":      "121",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "4.06",
+					"alignment":      "",
+					"milepost":       "3.81"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200056",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "NEW HAMPSHIRE",
+					"nearbyPlace":    "Costa Mesa",
+					"longitude":      "-117.928345",
+					"latitude":       "33.692524",
+					"elevation":      "39",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "12.04",
+					"alignment":      "",
+					"milepost":       "11.79"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200057",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "SEAL BEACH",
+					"nearbyPlace":    "Seal Beach",
+					"longitude":      "-118.060253",
+					"latitude":       "33.774024",
+					"elevation":      "29",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "21.8",
+					"alignment":      "",
+					"milepost":       "21.55"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1200058",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "WARDLOW",
+					"nearbyPlace":    "Long Beach",
+					"longitude":      "-118.081678",
+					"latitude":       "33.817992",
+					"elevation":      "42",
+					"direction":      "South",
+					"county":         "Los Angeles",
+					"route":          "I-605",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "0.81",
+					"alignment":      "",
+					"milepost":       "2.86"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": " I-405 TO CLOSE ",
+						"phase1Line2": "  AT FAIRVIEW   ",
+						"phase1Line3": " SAT  11PM-9AM  "
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1208488",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "YORBA LINDA",
+					"nearbyPlace":    "Fullerton",
+					"longitude":      "-117.880268",
+					"latitude":       "33.887518",
+					"elevation":      "278",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "18.24",
+					"alignment":      "",
+					"milepost":       "7.5"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1211184",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "IRVINE CENTER DRIVE",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.745482",
+					"latitude":       "33.647931",
+					"elevation":      "236",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "0.87",
+					"alignment":      "",
+					"milepost":       "0.62"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1211185",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "VON KARMAN",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.851222",
+					"latitude":       "33.679969",
+					"elevation":      "62",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "7.41",
+					"alignment":      "",
+					"milepost":       "7.19"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1211967",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "MAGNOLIA AT 22",
+					"nearbyPlace":    "Garden Grove",
+					"longitude":      "-117.969424",
+					"latitude":       "33.766029",
+					"elevation":      "68",
+					"direction":      "West",
+					"county":         "Orange",
+					"route":          "SR-22",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "5",
+					"alignment":      "",
+					"milepost":       "6.43"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1211978",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "17th ST",
+					"nearbyPlace":    "Tustin",
+					"longitude":      "-117.830808",
+					"latitude":       "33.758616",
+					"elevation":      "160",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "11.71",
+					"alignment":      "",
+					"milepost":       "11.69"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1212138",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Ortega Hwy",
+					"nearbyPlace":    "San Juan Capistrano",
+					"longitude":      "-117.661704",
+					"latitude":       "33.510279",
+					"elevation":      "216",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "10.17",
+					"alignment":      "",
+					"milepost":       "82.43"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1212822",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Kraemer",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.859224",
+					"latitude":       "33.846746",
+					"elevation":      "226",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "7.12",
+					"alignment":      "",
+					"milepost":       "25.5"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1212823",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "E of Imperial",
+					"nearbyPlace":    "Anaheim",
+					"longitude":      "-117.767451",
+					"latitude":       "33.864767",
+					"elevation":      "314",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-91",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "13.05",
+					"alignment":      "",
+					"milepost":       "31.4"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214503",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Vista Hermosa",
+					"nearbyPlace":    "San Clemente",
+					"longitude":      "-117.639346",
+					"latitude":       "33.449613",
+					"elevation":      "190",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "4.64",
+					"alignment":      "",
+					"milepost":       "76.88"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214504",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Avery Pkwy",
+					"nearbyPlace":    "Mission Viejo",
+					"longitude":      "-117.672768",
+					"latitude":       "33.546096",
+					"elevation":      "252",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "12.86",
+					"alignment":      "",
+					"milepost":       "85.12"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214505",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Crown Valley Pkwy",
+					"nearbyPlace":    "Mission Viejo",
+					"longitude":      "-117.67218",
+					"latitude":       "33.570674",
+					"elevation":      "288",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "14.57",
+					"alignment":      "",
+					"milepost":       "86.82"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214506",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "405 fwy",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.733182",
+					"latitude":       "33.642772",
+					"elevation":      "252",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "21.14",
+					"alignment":      "",
+					"milepost":       "93.4"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214507",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Yale OC",
+					"nearbyPlace":    "Irvine",
+					"longitude":      "-117.775036",
+					"latitude":       "33.700544",
+					"elevation":      "150",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "25.82",
+					"alignment":      "",
+					"milepost":       "98.06"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214508",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Tustin Ranch OC",
+					"nearbyPlace":    "Tustin",
+					"longitude":      "-117.805112",
+					"latitude":       "33.725985",
+					"elevation":      "91",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "28.32",
+					"alignment":      "",
+					"milepost":       "100.57"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214509",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Santa Isabella",
+					"nearbyPlace":    "Costa Mesa",
+					"longitude":      "-117.903163",
+					"latitude":       "33.657101",
+					"elevation":      "72",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "3.25",
+					"alignment":      "",
+					"milepost":       "3.25"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214510",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Baker Street",
+					"nearbyPlace":    "Costa Mesa",
+					"longitude":      "-117.878706",
+					"latitude":       "33.680209",
+					"elevation":      "55",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-55",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "5.38",
+					"alignment":      "",
+					"milepost":       "5.38"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214511",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Orangewood Ave",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.877915",
+					"latitude":       "33.796586",
+					"elevation":      "154",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "11.86",
+					"alignment":      "",
+					"milepost":       "1.14"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214512",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Placentia OH",
+					"nearbyPlace":    "Placentia",
+					"longitude":      "-117.879528",
+					"latitude":       "33.86806",
+					"elevation":      "223",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "16.88",
+					"alignment":      "",
+					"milepost":       "6.16"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214513",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Lambert Rd",
+					"nearbyPlace":    "Brea",
+					"longitude":      "-117.878697",
+					"latitude":       "33.935067",
+					"elevation":      "570",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-57",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "21.52",
+					"alignment":      "",
+					"milepost":       "10.79"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214514",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Edwards",
+					"nearbyPlace":    "Westminster",
+					"longitude":      "-118.01674",
+					"latitude":       "33.754335",
+					"elevation":      "39",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-405",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "18.72",
+					"alignment":      "",
+					"milepost":       "18.48"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1214956",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Cambridge Street",
+					"nearbyPlace":    "Santa Ana",
+					"longitude":      "-117.845635",
+					"latitude":       "33.775533",
+					"elevation":      "190",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-22",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "12.28",
+					"alignment":      "",
+					"milepost":       "13.85"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1217542",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Test CMS",
+					"nearbyPlace":    "Orange",
+					"longitude":      "-117.76848",
+					"latitude":       "33.69002",
+					"elevation":      "150",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "25",
+					"alignment":      "",
+					"milepost":       ""
+				},
+				"inService": "false",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218442",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Antonio",
+					"nearbyPlace":    "San Juan Capistrano",
+					"longitude":      "-117.624421",
+					"latitude":       "33.519067",
+					"elevation":      "170",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-74",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "2.31",
+					"alignment":      "",
+					"milepost":       "2.31"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218482",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "County Line",
+					"nearbyPlace":    "San Clemente",
+					"longitude":      "-117.59611",
+					"latitude":       "33.401633",
+					"elevation":      "127",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "I-5",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "0.38",
+					"alignment":      "",
+					"milepost":       "72.64"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218483",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Springdale",
+					"nearbyPlace":    "Westminster",
+					"longitude":      "-118.023301",
+					"latitude":       "33.774078",
+					"elevation":      "49",
+					"direction":      "East",
+					"county":         "Orange",
+					"route":          "SR-22",
+					"routeSuffix":    "",
+					"postmilePrefix": "R",
+					"postmile":       "1.77",
+					"alignment":      "",
+					"milepost":       "3.23"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218484",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "Laguna_Hills",
+					"nearbyPlace":    "Aliso Viejo",
+					"longitude":      "-117.725774",
+					"latitude":       "33.584286",
+					"elevation":      "452",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-73",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "14.77",
+					"alignment":      "",
+					"milepost":       "4.77"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218485",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "North of Jamboree",
+					"nearbyPlace":    "Newport Beach",
+					"longitude":      "-117.866717",
+					"latitude":       "33.657071",
+					"elevation":      "59",
+					"direction":      "North",
+					"county":         "Orange",
+					"route":          "SR-73",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "24.91",
+					"alignment":      "",
+					"milepost":       "14.91"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "1 Page (Normal)",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "I-405 TO CLOSE",
+						"phase1Line2": "AT FAIRVIEW",
+						"phase1Line3": "SAT  11PM-9AM"
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		},
+		{
+			"cms":
+			{
+				"index": "1218486",
+				"recordTimestamp":
+				{
+					"recordDate": "2019-03-06",
+					"recordTime": "18:19:07"
+				},
+				"location":
+				{
+					"district":       "12",
+					"locationName":   "South of Wildlife",
+					"nearbyPlace":    "Newport Coast",
+					"longitude":      "-117.818984",
+					"latitude":       "33.61494",
+					"elevation":      "718",
+					"direction":      "South",
+					"county":         "Orange",
+					"route":          "SR-73",
+					"routeSuffix":    "",
+					"postmilePrefix": "",
+					"postmile":       "20.75",
+					"alignment":      "",
+					"milepost":       "10.75"
+				},
+				"inService": "true",
+				"message":
+				{
+					"messageTimestamp":
+					{
+						"messageDate": "Not Reported",
+						"messageTime": "Not Reported"
+					},
+					"display":     "Blank",
+					"displayTime": "Not Reported",
+					"phase1":
+					{
+						"phase1Font":  "Not Reported",
+						"phase1Line1": "",
+						"phase1Line2": "",
+						"phase1Line3": ""
+					},
+					"phase2":
+					{
+						"phase2Font":  "Not Reported",
+						"phase2Line1": "",
+						"phase2Line2": "",
+						"phase2Line3": ""
+					}
+				}
+			}
+		}
+	]
+}
Index: trunk/src/cptms/cms_demo.html
===================================================================
--- trunk/src/cptms/cms_demo.html	(revision 296)
+++ trunk/src/cptms/cms_demo.html	(revision 297)
@@ -2,64 +2,66 @@
 <html>
   <head>
-<!-- Launch with  python -m SimpleHTTPServer 8080  -->
+<!-- Launch with  python -m CGIHTTPServer 8080  -->
     <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
     <meta charset="utf-8">
-    <title>KML Click Demo</title>
+    <title>CMS Manager Demo</title>
     <style>
         @font-face {
-          font-family: GreenLights;
-          src: url('GreenLights.otf');
+          font-family: Scoreboard;
+          src: url('scoreboard.ttf');
         }
       html, body {
-        height: 370px;
-        padding: 0;
-        margin: 0;
+            height: 370px;
+            padding: 0;
+            margin: 0;
         }
         textarea {
+           width: 272px;
            resize: none;
-           min-height: 16px;
-           max-height: 18px;
-           white-space: pre;
-        }
-        input {
-            max-height: 12px;
-        }
-        button {
-            min-height: 21px;
-            max-height: 25px;
+           overflow-wrap: break-word;
+           font-family: Scoreboard;
+           font-size: xx-large;
+           background-color: black;
+           color: GoldenRod;
+           overflow-y: hidden;
         }
       #map {
-       height: 560px;
-       width: 100%;
-       overflow: hidden;
-       border: thin solid #333;
+           height: 560px;
+           width: 100%;
+           overflow: hidden;
+           border: thin solid #333;
        }
       #cms-name {
-       height: 30px;
-       width: 335px;
-       overflow: hidden;
-       background-color: #ECECFB;
-       border: thin solid #333;
-       border-left: none;
-       }
+           height: 30px;
+           width: 300px;
+           overflow: hidden;
+           background-color: #ECECFB;
+           border: thin solid #333;
+           /* border-left: none; */
+       }
+       input {
+           font-family: Scoreboard;
+           font-size: xx-large;
+           font-weight: bold;
+           background-color: black;
+           color: Yellow;
+           border: thin solid #333;
+}
       #cms-message {
-       height: 93px;
-       width: 335px;
-       overflow: hidden;
-       float: left;
-       border: thin solid #333;
-       border-left: none;
-       font-family: GreenLights;
-       font-size: xx-large;
-       background-color: black;
-       color: GoldenRod;
+           height: 122px;
+           width: 300px;
+           overflow: hidden;
+           float: left;
+           /* border: thin solid #333;*/
+           /* border-left: none;*/
        }
       #userinput {
-       height: 93px;
-       width: 200px;
-       overflow: hidden;
-       background-color: #ECECFB;
-       border: thin solid #333;
-       border-left: none;
+           height: 122px;
+           width: 100px;
+           overflow: hidden;
+           background-color: #ECECFB;
+           border: thin solid #333;
+           border-left: none;
+           float: left;
        }
     </style>
@@ -67,11 +69,14 @@
   <body>
     <div id="cms-name"  style="display: none;"></div>
-    <div id="cms-message"  style="display: none;"></div>
+    <div id="cms-message"  style="display: none;">
+<!--    <textarea id="msgcontent1" maxlength="48" rows="3" cols="10" wrap="hard" style="display: none;"></textarea> -->
+    <input id="msgcontent1" size="16" maxlength="16"/>
+    <input id="msgcontent2" size="16" maxlength="16"/>
+    <input id="msgcontent3" size="16" maxlength="16"/>
+    </div>
+    <input id='cmsID' value="" type='hidden'/>
     <div id="userinput"    style="display: none;">
-    <input id='cmsID' value="" type='hidden'/>
-    <textarea id="msgcontent1" maxlength="16" cols="16"></textarea>
-    <textarea id="msgcontent2" maxlength="16" cols="16"></textarea>
-    <textarea id="msgcontent3" maxlength="16" cols="16"></textarea>
-    <button onclick="handleSubmit();">Submit</button>
+    <button onclick="handleClear();">Clear</button>
+    <button onclick="handleSubmit();">OK</button>
     <button onclick="handleCancel();">Cancel</button>
     </div>
@@ -80,41 +85,91 @@
     var centerPoint = {lat: 33.693385, lng: -117.798937};
       var map;
-//var src="http://git.tokomak.net:8888/raw-attachment/ticket/75/dyer1.txt"
-var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/cms_two_signs.kml";
-
-//      var src = "https://www.arb.ca.gov/smp/met/kml/faa.kml";
-//      var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/la_airports.kml"
-//      var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml';
+    var kMapStartupFile = "cmsStatusD12.json";
+    //var src="http://git.tokomak.net:8888/raw-attachment/ticket/75/dyer1.txt"
+    //var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/cms_two_signs.kml";
+    //      var src = "https://www.arb.ca.gov/smp/met/kml/faa.kml";
+    //      var src="https://raw.githubusercontent.com/jdalbey/map-spikes/master/la_airports.kml"
+    //      var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml';
+    var blueFlag = "icon_cmsBlue.png";
+    var yellowFlag = "icon_cmsYellow.png";
+    var messageList;
       function initMap() {
         map = new google.maps.Map(document.getElementById('map'), {
           center: centerPoint,
           zoom: 11,
-          mapTypeId: 'terrain'
+          /* mapTypeId: 'terrain', */
+          mapTypeControl: false,
+          streetViewControl: false 
         });
-
-        var kmlLayer = new google.maps.KmlLayer(src, {
-          suppressInfoWindows: true,
-          preserveViewport: false,  // false for zoom to placemarks
-          map: map
+        getMessage(1);  // load the current message file
+        setMarkers();
+      }
+
+     var cms_info;
+     var markerList = [];
+
+          
+     function setMarkers()
+     {
+        var simpleImage = "";
+
+        loadcmsJSON(function(response)
+        {
+            // Parse JSON string into object
+            cms_info = JSON.parse(response);
+            console.log(cms_info.data[0].cms);
+            // Process each new marker 
+            for (var i = 0; i < cms_info.data.length; i++) 
+            {
+              var cms = cms_info.data[i].cms;
+              var currLat = Number(cms.location.latitude);
+              var currLong = Number(cms.location.longitude);
+              // load a yellow flag if there's currently no message
+              if (messageList[i] == "||")
+                 simpleImage = yellowFlag;
+              else
+                 simpleImage = blueFlag;
+              markerList[i] = new google.maps.Marker(
+              {
+                position: {lat: currLat, lng: currLong},
+                map: map,
+                icon: simpleImage,
+                title: " "+cms.location.route + " "+ cms.location.direction+ " "+ cms.location.postmile,
+                label: ""+i
+              });
+              console.log("built: "+markerList[i].id+" "+markerList[i].title);
+ //           }
+ //           for (var i = 0; i < markerList.length; i++) 
+ //           {
+              google.maps.event.addListener(markerList[i], 'click', function () {
+                  //var content = event.featureData.infoWindowHtml;
+                  var cmsName = document.getElementById('cms-name');
+                  cmsName.innerHTML = this.getTitle(); // put sign name in display
+                  cmsName.style.display = 'block'
+                  var cmsMsg = document.getElementById('cms-message');
+                  cmsMsg.style.display = 'block'
+                  cmsID = Number(this.getLabel());
+                  getMessage(cmsID);  // note: this is async
+                  document.getElementById('cmsID').value=cmsID ;
+                  var userInput = document.getElementById('userinput');
+                  userInput.style.display = 'block'
+                });
+             }            
         });
-        kmlLayer.addListener('click', function(event) {
-          // grab description from kml file
-          var feature = event.featureData;
-          //var content = event.featureData.infoWindowHtml;
-          var cmsName = document.getElementById('cms-name');
-          cmsName.innerHTML = feature.name; // put sign name in display
-          cmsName.style.display = 'block'
-          cmsID = feature.id
-          getMessage(cmsID);  // note: this is async
-          // clear the response area
-          document.getElementById('msgcontent1').value="";
-          document.getElementById('msgcontent2').value="";
-          document.getElementById('msgcontent3').value="";
-          document.getElementById('cmsID').value=cmsID ;
-          var userInput = document.getElementById('userinput');
-          userInput.style.display = 'block'
-          console.log("clicked on: "+feature.id+" - " + feature.name);
-        });
-      }
+     }
+     function loadcmsJSON(callback) {   
+
+        var xobj = new XMLHttpRequest();
+            xobj.overrideMimeType("application/json");
+        xobj.open('GET', kMapStartupFile, true); 
+        xobj.onreadystatechange = function () {
+              if (xobj.readyState == 4 && xobj.status == "200") {
+                callback(xobj.responseText);
+              }
+        };
+        // We want ajax to ignore any cached responses
+        xobj.setRequestHeader('If-Modified-Since', 'Sat, 01 Jan 2000 01:01:01 GMT')
+        xobj.send(null);  
+     }
         function handleSubmit()
         {
@@ -127,5 +182,5 @@
             var response2 = document.getElementById('msgcontent2').value;
             var response3 = document.getElementById('msgcontent3').value;
-            saveMessage(response1+"<br>"+response2+"<br>"+response3);
+            saveMessage(response1+"|"+response2+"|"+response3);
         }
         function handleCancel()
@@ -135,4 +190,11 @@
             document.getElementById('userinput').style.display = 'none'
             document.getElementById('cms-name').style.display = 'none'
+        }
+        function handleClear()
+        {
+            document.getElementById('msgcontent1').value="";
+            document.getElementById('msgcontent2').value="";
+            document.getElementById('msgcontent3').value="";
+            document.getElementById('msgcontent1').focus();
         }
 
@@ -151,5 +213,4 @@
         xobj.send(null);  
      }
-     var messageList;
      // retrieve the current cms message file
      function getMessage(cmsID)
@@ -161,7 +222,12 @@
             // select a message from json for the given cmsID
             console.log("get by cmsID="+cmsID);
-            var cmsSign = document.getElementById('cms-message');
-            cmsSign.innerHTML = messageList[cmsID];
+            var cmsSign = document.getElementById('msgcontent1');
+            //cmsSign.innerHTML = messageList[cmsID];
+            messageparts = messageList[cmsID].split("|");
+            cmsSign.value = messageparts[0];
+            document.getElementById('msgcontent2').value = messageparts[1];
+            document.getElementById('msgcontent3').value = messageparts[2];
             cmsSign.style.display = 'block'
+            cmsSign.focus();
         });
      }
@@ -173,4 +239,8 @@
       console.log("Saving " + outMessage + " for cmsID " + cmsID)
       messageList[cmsID] =  outMessage;
+      if (outMessage.length < 4)
+       markerList[cmsID].setIcon(yellowFlag);
+      else
+       markerList[cmsID].setIcon(blueFlag);
       var xhttp = new XMLHttpRequest();
       xhttp.open("GET", "/cgi-bin/saveMessage.py?msg="+JSON.stringify(messageList), true);
